例えばsshアクセスした時に、そのサーバのfingerprintなものをknow_hostに残す。
なので、次回以降のアクセス時にそのfingerprintと照合してアクセスする。
いつも接続時にIPアドレスを使ってたが、know_hostにIPアドレスと一緒にfingerprintが残っていた。
よって、IPアドレスを別のホストに変えた場合、そのIPアドレスにアクセスするとエラーが出るが、あるとき、以下のようなエラーが表示された。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 RSA key sent by the remote host is SHA256:y80t5v9zJTqScVvopCu3t+7DtiUU1KCBKqpzZEqb83I. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1 RSA host key for xx.xx.xx.xx has changed and you have requested strict checking. Host key verification failed. lost connection
いつものknow_hostに登録されているfingerprintが変わったという話かと思ったので、known_hostの該当行を削除しようとしたら、いつものホストのリストがあるのではなく、以下のようなknown_hostの内容だった。
|1|hsChSyJkQmjcUK+ICPAXFQyc6UA=|cxJxKlxT9D9/piypKeeV/Zlkl3k= ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDNaKqLStlBMDm/Fe4ChE/lUBue1qi/sg8C0d3/4COk+jmdTTT+hmi/bYOX0XnMypI4E9n11282w3k61hc4bSc0UIFJ5E8xbaQn//aCBgmX3GAZAWD9zkm5pm7fl/gdkfyuNHU0i+Bj0vmB11X9SrX1MF4GGxJ6ib3RvQ2cTd/G9OkeldzvCP8LYfR8++xBYen5TnS82PPcpnwx5YQoPt3V5Y33cMfKboNYs9Dl6Z1pV+2preLtZBxCkKsidHhbDDcDlq1whYL0aBWy/EbOKgPD+LpBfG/lVqCzKmVM52Ik10rtlGUyICzfSHryAypnKkCEBfh4H6mLT6gr6Z4HH187
これはどこを削除すればいいのかわからない。。。
すると、keygenを使って削除できるとのこと。
keygen -R (ホスト名。IPでもいい)
今回はIPでアクセスしているホストだったので、IPを入れて実行したら、
# Host xx.xx.xx.xx found: line 1 /root/.ssh/known_hosts updated. Original contents retained as /root/.ssh/known_hosts.old
これで再度sshアクセスすると、アクセスできた。