Как: Отключить Проверку Ключа Хоста в SSH

По умолчанию, SSH клиент при подключении к хосту осуществляет проверку подлинности его ключа.

Если SSH клиент не узнает отпечаток, он попросит вас подтвердить его добавление набрав «yes» или «no».

Это может привести к проблемам при попытке автоматического подключения с помощью какого-либо скрипта.

Дельный Совет: Долго подключаетесь по SSH? Приглашение для ввода пароля появляется с задержкой? Это легко исправить! Читать далее →

В данной статье объясняется как обойти проверку подлинности ключа отключив ее.

The Authenticity Of Host Can’t Be Established

Когда вы впервые подключаетесь к удаленному хосту, его ключ скорее всего будет неизвестен вашему SSH клиенту и поэтому он предложит вам проверить и подтвердить его отпечаток:

The authenticity of host ***** can't be established.
RSA key fingerprint is *****.
Are you sure you want to continue connecting (yes/no)?

Если вы ответите утвердительно, SSH клиент продолжит подключение сохранив ключ сервера локально в файле ~/.ssh/known_hosts.

В противном случае подключение к хосту будет прервано.

Чтобы обойти эту проверку вы можете из командной строки установить опцию «StrictHostKeyChecking» в значение «no«.

$ ssh -o "StrictHostKeyChecking=no" user@host

Эта опция отключает запрос на подтверждение и автоматически добавляет ключ хоста в файл ~/.ssh/known_hosts.

Remote Host Identification Has Changed

Тем не менее, даже с опцией «StrictHostKeyChecking=no«, вам может быть отказано в подключении со следующим предупреждающим сообщением:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
*****
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending key in /home/user/.ssh/known_hosts:1
RSA host key for ***** has changed and you have requested strict checking.
Host key verification failed.

Если вы уверены, что это безопасно и ключ удаленного хоста был изменен в легитимный способ, вы можете пропустить проверку ключ перенаправив его в несуществующий known_hosts файл:

$ ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" user@host

Также обе опции могут быть заданы перманентно в ~/.ssh/config (для текущего пользователя) или в /etc/ssh/ssh_config (для всех пользователей).

Дельный Совет: Подключайтесь на удаленный Linux сервер без ввода пароля! Читать далее →

И еще они могут быть настроены как для отдельных, так и для всех хостов.

Отключить Проверку SSH Host Key Для Всех Хостов

Host *
   StrictHostKeyChecking no
   UserKnownHostsFile=/dev/null

Отключить Проверку SSH Host Key Для 192.168.0.0/24

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

4 Replies to “Как: Отключить Проверку Ключа Хоста в SSH”

  1. Exactly what I needed. Thx for posting.

  2. I was looking for a way to disable host checking from Python’s pexpect. -o «UserKnownHostsFile=/dev/null» did the job. Thank you.

  3. Feels like it’s a little irresponsible to tell people to do this without warning them of the dangers of doing so…

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.