Ошибка «WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED»

Описание проблемы

Возникает при подключении к виртуальной машине по SSH, когда SSH-клиент на вашем компьютере обнаружил, что публичный ключ для IP-адреса виртуальной машины изменился.

Например, такую ошибку можно получить, если:

  1. Создать ВМ с публичным IP-адресом.

  2. Подключиться к ней по SSH.

  3. Отвязать публичный IP от ВМ.

  4. Назначить публичный IP новой ВМ, для подключения к которой используется другой SSH-ключ.

  5. Попытаться подключиться к новой ВМ по SSH.

Решение

Во время каждого подключения к виртуальной машине SSH-клиент проверяет, совпадает ли публичный ключ для IP-адреса этой ВМ с тем, который использовался прошлый раз. Список IP-адресов и соответствующих им ключей хранится в файле known_hosts на компьютере, с которого выполняется подключение.

При первом подключении к ВМ в known_hosts добавляется новая запись — ключ хоста. В этот момент появляется такое сообщение:

The authenticity of host '192.168.0.2 (192.168.0.2)' can't be established.
RSA key fingerprint is SHA256:********Lo+RBBNpxKp7mInocF3/Yl/0fXRsGJ2JfYg.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

После создания ключа хоста подключиться к ВМ с другим публичным ключом не получится, потому что он не совпадет с тем, что указан в known_hosts.

Чтобы устранить ошибку:

  1. Удалите старую запись о хосте. В терминале выполните команду:

    ssh-keygen -R <public_IP>

    Где <public_IP> — публичный IP-адрес виртуальной машины.

    Также вы можете открыть файл known_hosts на своем компьютере и вручную удалить из него строку, которая соответствует публичному IP-адресу ВМ. По умолчанию файл находится в директории /home/<имя_пользователя>/.ssh или C:\Users\<имя_пользователя>\.ssh\

  2. Подключитесь к ВМ по SSH:

    ssh <login>@<public_IP>

    Где:

    • <login> — имя пользователя виртуальной машины.

    • <public_IP> — публичный IP-адрес виртуальной машины.

  3. Подтвердите добавление нового ключа хоста: введите yes.

Evolution