Автоматично прийняти відбиток ключа rsa з командного рядка


15

Я yes | ssh root@10.x.x.xспробував прийняти відбиток ключа RSA, але все-таки підкаже, якщо я впевнений, що хочу підключитися. Чи є спосіб зробити це автоматичним?

Відповіді:


8

Додайте їх до файлу запуску bash або подібного:

 #
 #  ssh + scp without storing or prompting for keys.
 #
 function sshtmp
 {
     ssh -o "ConnectTimeout 3" \
         -o "StrictHostKeyChecking no" \
         -o "UserKnownHostsFile /dev/null" \
              "$@"
 }
 function scptmp
 {
     exec scp -o "ConnectTimeout 3" \
         -o "StrictHostKeyChecking no" \
         -o "UserKnownHostsFile /dev/null" \
         "$@"
 }

Потім використовуйте sshtmpабо scptmpзамість sshі scp.

ПРИМІТКА Якщо ви дійдете по цій дорозі, ви не отримаєте сповіщення про те, що ключ хоста змінився і втратить безпеку.


4
Спасибі ssh -o "StrictHostKeyChecking no" root@10.x.x.xпрацювали для мене
VenomFangs

16
як це відповідь? Питання полягало в тому, щоб автоматично приймати ключі, а не ігнорувати їх! Якщо це запитують і відповідають тут, то як я можу знайти відповідь на власне питання "Прийняти ключі автоматично"? Ненавиджу робити низовину, але люди, що зустрічаються, це не такий спосіб, яким має бути обмін стеками!
JohnnyB

@JohnnyB поглянь на мою відповідь. Це не найчистіше рішення, але воно фактично дозволяє автоматично приймати ключ
RDP

13

OpenSSH 7.6 представив нові StrictHostKeyChecking=accept-newнастройки саме для цієї мети:

ssh(1): expand the StrictHostKeyChecking option with two new
   settings. The first "accept-new" will automatically accept
   hitherto-unseen keys but will refuse connections for changed or
   invalid hostkeys. This is a safer subset of the current behaviour
   of StrictHostKeyChecking=no. The second setting "n", is a synonym
   for the current behaviour of StrictHostKeyChecking=no: accept new
   host keys, and continue connection for hosts with incorrect
   hostkeys. A future release will change the meaning of
   StrictHostKeyChecking=no to the behaviour of "accept-new".

( OpenSSH 7.6 Примітки до випуску )


10

Використання SSH програмно з відомим ключем хостів

Якщо ви хочете, щоб мати можливість використовувати програмно І уникати атаки Man-In-The Middle , тоді я пропоную вам отримати відомий відбиток пальців за допомогою команди ssh-keyscan. Приклад:

$ ssh-keyscan -t rsa,dsa github.com 2>/dev/null
github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==

Тоді ви можете підробити сценарій, щоб зберегти його у тимчасовому файлі та скористатися UserKnownHostsFileопцією. Приклад нижче - це сценарій, який можна назвати ssh_github:

#!/bin/bash

HOSTKEY='github.com ssh-dss AAAAB3NzaC1kc3MAAACBANGFW2P9xlGU3zWrymJgI/lKo//ZW2WfVtmbsUZJ5uyKArtlQOT2+WRhcg4979aFxgKdcsqAYW3/LS1T2km3jYW/vr4Uzn+dXWODVk5VlUiZ1HFOHf6s6ITcZvjvdbp6ZbpM+DuJT7Bw+                      h5Fx8Qt8I16oCZYmAPJRtu46o9C2zk1AAAAFQC4gdFGcSbp5Gr0Wd5Ay/jtcldMewAAAIATTgn4sY4Nem/FQE+XJlyUQptPWMem5fwOcWtSXiTKaaN0lkk2p2snz+EJvAGXGq9dTSWHyLJSM2W6ZdQDqWJ1k+cL8CARAqL+UMwF84CR0m3hj+wtVGD/J4G5kW2DBAf4/bqzP4469lT+dF2FRQ2L9JKXrCWcnhMtJUvua8dvnwAAAIB6C4nQfAA7x8oLta6tT+oCk2WQcydNsyugE8vLrHlogoWEicla6cWPk7oXSspbzUcfkjN3Qa6e74PhRkc7JdSdAlFzU3m7LMkXo1MHgkqNX8glxWNVqBSc0YRdbFdTkL0C6gtpklilhvuHQCdbgB3LBAikcRkDp+FCVkUgPC/7Rw==
github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+                                                                                                                                      PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+    2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ=='

TEMPFILE=$(mktemp)
echo "$HOSTKEY" > $TEMPFILE

ssh -o "UserKnownHostsFile $TEMPFILE" $@

rm $TEMPFILE

З цим ви можете просто запустити ssh_githubзамість цього, sshі він підключиться, навіть якщо немає known_hostsфайлу, куди ви ставите сценарій.


0

Я просто використовую: 'ssh -o StrictHostKeyChecking = немає користувача @ хост', його також можна використовувати з pssh: 'pssh -O StrictHostKeyChecking = no -h list.text -l user -A -i "cmd"'

З повагою,


Це спрацювало на мене, чи є причина, чому за нього проголосували? Також потрібен OpenSSH 7.6+
Xenocide8998

-3

Можна скористатися -yопцією: тобто спробувати

ssh -y root@10.x.x.x

-y Завжди приймайте ключ віддаленого хоста, якщо невідомий


Ласкаво просимо до помилки сервера! Будь ласка, використовуйте параметри Markdown та / або параметри форматування в меню редагування, щоб правильно набрати свої повідомлення, щоб поліпшити їх читабельність. Формати команд як " code" є звичайним .
HBruijn

Дивно, але в людині я бачу таке --y Send log information using the syslog system module. By default this information is sent to stderr.
ALex_hha

Я бачу те саме в людині.
Király István

це недійсний ssh ​​варіант? Звідки ви це скопіювали / вставили?
Flo Woo

2
Ця опція існує лише в Drobebe SSH, а не OpenSSH.
Джеремі Віссер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.