Как: Отключить Проверку Ключа Хоста в 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

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

  1. Exactly what I needed. Thx for posting.

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