CH-J Server Managerуправление серверами через SSH
Меню
Все руководства и статьи →

Ключ хоста SSH изменился: что означает предупреждение и как действовать

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

О чём говорит предупреждение

Сервер подтверждает свою подлинность ключом хоста. Если ключ отличается от ранее сохранённого клиентом, OpenSSH выводит REMOTE HOST IDENTIFICATION HAS CHANGED и отказывается подключаться. Клиент не может отличить безобидное изменение от атаки, поэтому считайте предупреждение неустранённым, пока не проверите его причину.

Распространённые причины

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

Сравните отпечатки

Посмотрите настоящий отпечаток на сервере по каналу, который не зависит от этого SSH-соединения, например через консоль провайдера или гипервизора. Команда ssh-keyscan показывает лишь то, что предъявляется вам по сети, и сама по себе ничего не доказывает. Она полезна только для сравнения со значением из консоли.

sudo ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub

ssh-keyscan -t ed25519 server.example | ssh-keygen -lf -

Замените старую запись

Удаляйте старую запись и подключайтесь заново только после того, как отпечатки совпадут. Для нестандартного порта используется отдельная запись с квадратными скобками. ssh-keygen сохраняет предыдущий файл как known_hosts.old. Не отключайте StrictHostKeyChecking и не удаляйте весь файл known_hosts: это убирает защиту для всех ваших серверов.

ssh-keygen -R server.example
ssh-keygen -R '[server.example]:2222'
ssh user@server.example

Как избежать предупреждения после переустановки

Если вы планируете переустановить сервер и хотите сохранить его идентичность, безопасно создайте резервную копию ключей хоста из /etc/ssh и восстановите их с прежними владельцем и правами. С клонами поступайте наоборот: каждой машине, созданной из одного образа, нужны собственные ключи хоста, иначе несколько серверов будут иметь одну идентичность.

Ключи хоста в CH-J Server Manager

Приложение хранит отпечатки SHA-256 ключей хоста в своём зашифрованном хранилище, отдельно от файла known_hosts клиента OpenSSH. При изменении оно блокирует соединение и показывает известный и новый отпечатки. Запись заменяется только после вашего подтверждения, а отмена ничего не меняет. В Alpha 0.1.1 проверка также охватывает каждый промежуточный хост, а выполняемая передача останавливается при изменении ключа. Приложение не может проверить новый отпечаток за вас, поэтому проверка по другому каналу остаётся вашей задачей.

Подробная документация

OpenSSH: ssh →

OpenSSH: ssh-keygen →

Биометрическое разблокирование и безопасность →