Як я можу уникнути перевірки хоста SSH для відомих хостів?


167

Я отримую таку підказку кожного разу, коли намагаюся підключити сервер за допомогою SSH. Я набираю "так", але чи є спосіб це підтвердити?

The authenticity of host '111.222.333.444 (111.222.333.444)' can't be established.
RSA key fingerprint is f3:cf:58:ae:71:0b:c8:04:6f:34:a3:b2:e4:1e:0c:8b.
Are you sure you want to continue connecting (yes/no)? 

7
/ dev / null існує для тих, хто думає, що вони не застраховані від людини в атаках в середині :)
Tim Post

1
Найгірша частина: введіть, yщоб заощадити час, і він скаржиться: Please type 'yes' or 'no': (hmph)
ADTC

Відповіді:


228

Скористайтеся -oопцією,

ssh -o "StrictHostKeyChecking no" user@host

1
Ви можете скористатися альтернативним ідентифікаційним файлом із прапором '-i'
МУЙ, Бельгія

Яке б використання альтернативного файлу ідентичності? Я маю на увазі, якщо ви підключаєтесь до компрометованого хоста, яку різницю має значення аутентифікації - це не так, як компрометований хост також може вкрасти ваш ключ.
Дагельф

99

Додайте наступні рядки до початку /etc/ssh/ssh_config...

Host 192.168.0.*
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Параметри:

  • Підмережа Host може бути *дозволена необмеженим доступом до всіх IP-адрес.
  • Редагування /etc/ssh/ssh_configдля глобальної конфігурації або ~/.ssh/configдля конфігурації користувача.

Дивіться http://linuxcommando.blogspot.com/2008/10/how-to-disable-ssh-host-key-checking.html


2
Шкода, що я можу вас віддати лише один раз. Налаштування KknownHosts на / dev / null - геніальне.
J0hnG4lt

1
Ваш найрозумніший.
Дарт Егрегійний

30
Га! Скажи моїй дружині.
JimFred

30

Ви повинні отримати це лише при першому підключенні до нового хоста. Після того, як ви відповісте, yesхост зберігається, ~/.ssh/known_hostsі вам не буде запропоновано наступного разу, коли ви підключитесь.

Зауважте, що якщо ~/.ssh/known_hostsви не можете записати їх з будь-якої причини (наприклад, проблема з дозволами), вам буде запропоновано щоразу, коли ви підключитесь.


6
Питання, чи все-таки уникати підказки?
shantanuo

Я спробував додати "CheckHostIP ні" до файлу / etc / ssh / ssh_config. Але це, здається, не працює
shantanuo

2
sudo chown -R користувач: користувач .ssh; sudo chmod 700 .ssh; sudo chmod -R 600 .ssh /; ssh-keygen -R $ ім'я хоста та знову підключіться, що повинно усунути ВСІ проблеми та ТІЛЬКИ повторно підказувати, якщо ssk_Hostkey відключений | змінився або ви стали жертвою MITM.
linuxdev2013

1
в ньому написано "щоразу", тому ця відповідь дуже підходить
tarikakyol

11

Найкращий спосіб (оскільки це не приносить шкоди безпеці) - це підключити один раз до всіх комп’ютерів від одного клієнта (вам буде запропоновано кожен раз, завжди відповідайте "так"). Як зазначено в іншій відповіді, ключі будуть зберігатися у ~ / .ssh / known_hosts. Потім скопіюйте цей файл на кожен клієнтський комп'ютер, з яким згодом ви хочете підключитися (можливо, для кожного облікового запису користувача, який ви використовуєте). Тоді всі ці акаунти будуть "знати" комп'ютери, отже, не буде підказувати.

Перевага перед просто відключенням підказки полягає в тому, що SSH може насправді перевірити, чи є MITM-атака.


1
Хоча, якщо ви часто використовуєте ssh за допомогою прямого з'єднання, вам потрібно додати це до / etc / ssh / ssh_config: Host 127.0.0.1 NoHostAuthenticationForLocalhost так
Dagelf

1

Якщо ви хочете відключити підтвердження, а не автентифікацію, ви можете скористатися опцією: "-o CheckHostIP = ні"

ssh -i sergeys_rsa_key.pem -o CheckHostIP=no brin@8.8.8.8

ОП вже отримав таку ж відповідь і прийняв її.
Аян

0

Можливо, це тому, що ваш сервер ключів ssh змінився, оскільки ip або домен сервера однакові, але невідповідність ключа ssh.

Ви повинні видалити збережений ключ у, /home/$user/.ssh/known_hostsщоб уникнути цього повідомлення.

Я виправив це, видаляючи всі ключі у цьому файлі, тому для цього доменного імені створюється новий маркер.


1
Ключ змінився виробляє багато неприємного повідомлення з коробкою atsigns і WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! і IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!у всіх ковпачках. Повідомлення у питанні виникає лише в тому випадку, якщо в ньому вже немає запису known_hosts.
dave_thompson_085

-1

Перевірте дозволи на ваш ~/.ssh/known_hostsфайл. Мої були невірними, коли я отримав цю проблему. Я зафіксував це за допомогою:

chmod 0600 ~/.ssh/known_hosts
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.