Warning remote host identification has changed как исправить

Обновлено: 05.07.2024

Исправляем ошибку: warning: possible dns spoofing detected

Данная ошибка может появляться при попытке подключения к другому компьютеру через ssh и sftp протоколы. Полностью она выглядит так:

ssh root@sysadmin.ru
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: POSSIBLE DNS SPOOFING DETECTED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for sysadmin.ru has changed,
and the key for the corresponding IP address 88.99.12.44
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /home/ajiekceu4/.ssh/known_hosts:9
remove with:
ssh-keygen -f "/home/ajiekceu4/.ssh/known_hosts" -R 88.99.12.44

Причина возникновения ошибки

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

  • Был изменен сертификат на устройстве и соответственно поменялся ECDSA ключ (из соображений безопасности, например);
  • Переустановлена ОС на устройстве и соответственно изменился сертификат;
  • Кто то пытается вас обмануть;

В случае успеха, вывод команды должен быть примерно таким:

После этого, необходимо еще раз попытаться подключиться к удаленному хосту и подтвердить установку нового ключа, написав "yes"


Мануал

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

Это просто уведомление о безопасности, которое указывает, что ключ хоста ECDSA для данной удаленной системы изменился с момента вашего последнего подключения.

Как вы, возможно, уже знаете, когда мы впервые обращаемся к удаленной системе из локальной системы через SSH, отпечаток ключа ECDSA, отправленный этим удаленным хостом, кэшируется и сохраняется в файле $ HOME/.ssh/known_hosts в нашей локальной системе .

Когда идентификатор (отпечаток) изменился после переустановки удаленной системы или назначения одного и того же IP-адреса для нескольких удаленных систем, появляется указанное выше предупреждение.

Чтобы устранить эту проблему, просто удалите кэшированный ключ для IP-адреса в локальной системе с помощью команды:

Вы также можете явно указать путь к файлу known_hosts с флагом -f, как показано ниже.

Приведенная выше команда удалит все ключи, принадлежащие удаленному хосту, из файла known_hosts локальной системы.

А также старое содержимое файла known_hosts будет сохранено в файле с именем «known_hosts.old».

Если вы используете другой порт SSH, вам нужно явно указать его, как показано ниже:

Замените его вашим фактическим номером порта SSH.

После удаления ключей попробуйте снова подключиться к SSH в удаленной системе с помощью команды:

Описание ошибки

Полностью она выглядит так:

Причина возникновения ошибки

В случае, если вы уверены, что это не атака DNS SPOOFING, то рецепт для избавления от этой ошибки очень прост и описан в самом тексте, достаточно просто выполнить команду:

После этого будет удален ключ, соответствующий данному IP адресу (в нашем примере 88.99.12.44). Затем, необходимо еще раз подключиться к данному хосту и будет установлен новый ключ:

После этого, ошибка "WARNING: POSSIBLE DNS SPOOFING DETECTED!" должна исчезнуть.

Исправляем ошибку: warning: remote host identification has changed!

Исправляем ошибку: warning: remote host identification has changed

Данная ошибка может появляться при попытке подключения к другому компьютеру через ssh и sftp протоколы.

🔐 Как автоматически принять отпечаток ключа ( фингерпринт ) SSH?


Мануал

Он позволяет вам безопасно подключаться к удаленному компьютеру через незащищенную сеть.

Когда вы подключаетесь к системе Linux в первый раз, SSH предлагает вам принять фигерпринт компьютера для успешного установления соединения, поскольку у вас еще его нет в вашем файле «known_hosts».

Чтобы защитить себя от атаки Man-in-the-Middle (MITM), программа ssh проверяет ключ удаленной системы с помощью фингерпринта, сохраненного с момента последнего подключения.

Если он изменился, вы получите уведомление и система спросит, хотите ли вы продолжить.

В противном случае вам будет разрешено войти в систему напрямую.

Но иногда вам может потребоваться автоматически принять отпечаток SSH.

Например, если вы создали bash скрипт для запуска на нескольких машинах.

Обратите внимание: вы эффективно обходите предполагаемую безопасность SSH с помощью приведенных ниже методов. Это менее опасно при использовании во внутренней сети, но не рекомендуется использовать его в общедоступном Интернете или других ненадежных сетях.

Это можно сделать двумя следующими способами.

  • Автоматически принимать отпечаток ssh с помощью параметра «StrictHostKeyChecking = no» с командой ssh
  • Автоматически принимать отпечаток ssh с помощью команды ssk-keycan

Когда вы подключаетесь к удаленному компьютеру в первый раз, вы будете предупреждены о том, что подлинность хоста не может быть установлена, и вам будет предоставлен отпечаток ключа для проверки.

Читайте также: