サーバーに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
しかし、私は同じ指紋を取得しません。また、awsのような「hostname、ip」も試しましたが、一致しませんでした。
known_hostsファイルから入り口を削除してからsshを再試行すると、成功して次のように表示されます。
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx/xxxxxxx.
Are you sure you want to continue connecting (yes/no)?
それでは、指紋を取得するためにsha256sumを適用し、それを確認する方法は何ですか?
/etc/ssh/ssh_host_ecdsa_key.pub
、指紋を取得することができます。今やりました。