SSH 接続で こんなエラーに遭遇することがあります。

 1$ ssh user_name@remote_host
 2@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 3@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
 4@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 5IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
 6Someone could be eavesdropping on you right now (man-in-the-middle attack)!
 7It is also possible that a host key has just been changed.
 8The fingerprint for the ECDSA key sent by the remote host is
 9SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
10Please contact your system administrator.
11Add correct host key in /Users/user_name/.ssh/known_hosts to get rid of this message.
12Offending ECDSA key in /Users/user_name/.ssh/known_hosts:1
13ECDSA host key for remote_host has changed and you have requested strict checking.
14Host key verification failed.

見るからに恐ろしい、エラーですね。

これは何 ?

接続しようとしたリモートホストが、 「以前接続した時の情報と変わっているけど、ヘンじゃない ?」 というエラーです。

例えば、なりすましや第三者による傍受などの攻撃かもしれません、注意してください !

そうではなく、AWS など、仮想サーバで IP なんかを付け替えたときにも、このエラーが発生します。
サーバを管理している人が、インスタンスを入れ替えたりすると、発生する感じなので、聞いてみましょう。

誰も何も知らなかったら、接続しないほうが安全ですね。

エラーの解消方法

接続したことがあるホストの情報は ~/.ssh/known_hosts に溜まっていきます。

ここから、対象ホストの情報を消してやれば、警告を抑えることができますよ。

ターミナルで、次のようにすると、OKです。

1$ ssh-keygen -R remote_host

もちろん、直接編集しちゃってもOKですよ。

1$ vim ~/.ssh/known_hosts