Я получил известное предупреждающее сообщение при попытке ssh на сервер:
$ ssh whateverhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx/xxxxxxx.
Please contact your system administrator.
Add correct host key in /home/user/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /home/user/.ssh/known_hosts:10
ECDSA host key for ipofmyhost has changed and you have requested strict checking.
Host key verification failed.
И я знаю почему, потому что я изменил ip такого сервера. Но если бы это было не так, как я мог проверить отпечаток пальца на ключ ECDSA, отправленный удаленным хостом?
Я пытался сделать это путем:
echo -n ipofthehost | sha256sum
Но я не получаю такой же отпечаток пальца. Я также пробовал "hostname, ip" вроде как в aws, но у меня не было совпадений.
Если я удаляю запись из моего файла known_hosts и пытаюсь снова выполнить ssh, он завершается успешно и сообщает следующее:
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx/xxxxxxx.
Are you sure you want to continue connecting (yes/no)?
Так к чему он применяет сумму sha256 для получения отпечатка пальца и как я могу это проверить?
/etc/ssh/ssh_host_ecdsa_key.pub
получить отпечаток пальца. Я только что сделал.