SSH接続をした時に、以下のようなエラーが出てリモートホストに接続できないことがある
% ssh user@192.168.1.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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 ED25519 key sent by the remote host is
XXXXXXXXXXXXXXXXX.
Please contact your system administrator.
Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message.
Offending ED25519 key in /Users/username/.ssh/known_hosts:XX
ED25519 host key for 192.168.1.1 has changed and you have requested strict checking.
Host key verification failed.
これは、known_hostsに登録されているホストの公開鍵と、接続先ホストの公開鍵が一致しない時に発生するエラー
具体的には
- IP: 192.168.1.1を持つリモートホストAにローカルXからSSHする
- IP: 192.168.1.1をリモートホストBに付け替える
- リモートホストBにローカルXからSSHする
というようなことをすると発生する。
検証用にIPを使い回してるとやりがち
なので、known_hostsから対象のホスト情報を消せば良い。
具体的には以下
% ssh-keygen -R 192.168.1.1
# Host 192.168.1.1 found: line XX
/Users/username/.ssh/known_hosts
Original contents retained as /Users/username/.ssh/known_hosts.old