sshでサーバーにログインしようとすると、次のようなワーニングが表示される場合があります。
Warning: the ECDSA host key for '[host1]:3233' differs from the key for the IP address '[192.168.1.4]:3233'Offending key for IP in /home/guest/.ssh/known_hosts:3Matching host key in /guest/.ssh/known_hosts
通常、このワーニングは、ssh-keygenでそのホストのkeyを削除すれば消えます。
ssh-keygen -R host1
ところが、ssh-keygenを実行すると、次のようなエラーが発生しました。
Host host1 not found in /home/guest/.ssh/known_hosts
原因
keyを管理している.ssh/known_hostsに重複するkeyが登録されていると、ssh-keygenでエラーが発生するようです。ある同一マシンのIPアドレスの割り当てやhostnameを変更した場合に、気づかずにこのような状態になることがあります。
[host1]:49378 ecdsa-sha2-nistp256 ABAAE2VjZHNhLXNoYTItbmcEbjFoRZ5xWO9JnU=
[host2]:49378 ecdsa-sha2-nistp256 ABAAE2VjZHNhLXNoYTItbmcEbjFoRZ5xWO9JnU=
[host3]:49378 ecdsa-sha2-nistp256 ABAAE2VjZHNhLXNoYTItbmcEbjFoRZ5xWO9JnU=
古いkeyを.ssh/known_hostsから削除すると、ワーニングが表示されなくなりました。