SSHでは、接続先サーバの情報(RSA公開鍵のフィンガープリント)をクライアントに保存し、SSH接続時に以前保存した情報と、現在接続しようとしているサーバーの情報が一致しているかを確認する仕組みになっています。
以前接続したサーバーを削除し、以前接続したサーバーと同じIPアドレスで新規サーバーを構築した場合に、クライアントに以前接続したサーバーの情報が残っていると、サーバーの情報が一致せずに SSH接続時に以下エラーが発生する場合があります。
$ sudo ssh root@192.168.25.109 [sudo] yuji のパスワード: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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:pJCS7Ae2bx7me8qR8TqKG10nEwvEd16+aJ8TAF7lLmU. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /root/.ssh/known_hosts:18 ECDSA host key for 192.168.25.109 has changed and you have requested strict checking. Host key verification failed. $
ここでは、上記エラーを回避する方法を紹介します。
保存している接続先サーバの情報(フィンガープリント)を削除します。
$ sudo ssh-keygen -R 192.168.25.109 # Host 192.168.25.109 found: line 18 /root/.ssh/known_hosts updated. Original contents retained as /root/.ssh/known_hosts.old $
削除した後に、SSH 接続できようになっていることを確認します。
$ sudo ssh root@192.168.25.109 The authenticity of host '192.168.25.109 (192.168.25.109)' can't be established. ECDSA key fingerprint is SHA256:pJCS7Ae2bx7me8qR8TqKG10nEwvEd16+aJ8TAF7lLmU. ECDSA key fingerprint is MD5:63:ff:6a:08:72:d7:7b:64:e5:c3:2d:1c:e3:72:a6:30. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.25.109' (ECDSA) to the list of known hosts. root@192.168.25.109's password: Last login: Sat Nov 10 14:15:04 2018 [root@host-172-16-2-105 ~]#