Перейти к содержимому
ecdsa.com
OpenSSH clientSSH

Сообщение об ошибке

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

Также выводится как

  • IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
  • Offending ED25519 key in /root/.ssh/known_hosts:1

Выводится блоком между строками из символов `@`; за ним следуют отпечаток нового ключа, проблемная строка known_hosts и «Host key verification failed.».

OpenSSH client — host key differs from the one recorded in known_hosts

Что это означает

Сервер предъявил ключ хоста, который отличается от ключа, записанного в `known_hosts` для этого имени хоста или адреса. ssh не может отличить законную смену (переустановка, новая машина за тем же IP) от перехвата соединения, поэтому в пакетном режиме отказывается продолжать, а в остальных случаях отключает аутентификацию по паролю и keyboard-interactive. Строка «Offending … key in …:N» показывает, в какой строке known_hosts хранится старый ключ.

Почему это происходит

Как исправить

  1. 1.

    Проверьте новый ключ, затем замените запись

    Сравните новый отпечаток с отпечатком из доверенного источника; только после этого удалите старую строку через `ssh-keygen -R` (и по имени, и по IP).

    bash
    # 1. Get the new fingerprint from a trusted channel (cloud console, provisioning logs, the admin)
    ssh-keyscan -t ed25519 server.example.com 2>/dev/null | ssh-keygen -lf -
    # 2. Only if it matches: remove the old entry and connect again
    ssh-keygen -R server.example.com
    ssh-keygen -R 203.0.113.10
  2. 2.

    Используйте сертификаты хостов SSH для парка серверов

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

    text
    # known_hosts: trust host keys signed by your SSH CA instead of pinning each key
    @cert-authority *.internal.example.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA... ssh-host-ca

Связанные ошибки

Открыть всю базу ошибок подписей