以前は Windows で Linux サーバーにリモート接続する際、一般的に PuTTY を使っていましたが、現在は macOS に移行しました。macOS に標準搭載されているターミナルにもリモート接続機能があり、ほかの SSH クライアントをダウンロードする必要がないことに気づきました。

その後、ロサンゼルスの VPS に酸酸乳をインストールしていたところ、少し問題が発生したためシステムをリセットしました。2 回目に SSH 接続を行った際、次のエラーが表示されました。

$ ssh root@107.174.218.121
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    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:HDjXJvu0VYXWF+SKMZjSGn4FQmg/+w6eV9ljJvIXpx0.
Please contact your system administrator.
Add correct host key in /Users/ikxin/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/ikxin/.ssh/known_hosts:46
ECDSA host key for 107.174.218.120 has changed and you have requested strict checking.
Host key verification failed.

大まかな意味は、ホストキーの検証に失敗し、初回に保存したキーと一致していないということです。PuTTY を使用していたときにはこの問題に遭遇したことがありませんでしたが、おそらく両者の仕組みが異なるためです。この問題は通常、システムをリセットしたことが原因で発生します。システムをリセットするとキーが再生成されるため、一致しなくなります。

問題の解決も簡単で、ssh-keygen を使用します。

ターミナルに次のように入力します。

ssh-keygen -R 你要访问的 IP 地址

これで、この IP の照合用キーをリセットできます。また、古いキーは known_hosts.old ファイルに保存されます。