No.302


【ssh】sshでWARNINGが出て接続できないとき

接続先の環境再構築後、アクセスできなくなっちゃった…

 sshでリモートホストに接続して作業する仕事をやっていると、たまに

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 

 と出てリモートホストに接続できなくなることがある。


原因

 相手先がハッキングを受けたりなどのいたずらをされているのでなければ、概ね下記の理由で接続先の公開鍵情報(fingerprint)が、接続を行おうとしている環境に保存されているものと不整合をおこしていると考えられる。

  • リモートホストを別のハードウェアにすげ替えた。
  • リモートホストのOSを変更、再インストールした。
  • リモートホストのIPアドレスが変わって、元のIPに別のマシンが存在している。

 相手が自分の管轄内のリモートホストだったら、状況確認のうえ、ローカルに保存されているフィンガープリントを削除してしまえばOK。


対策①:手動で消す

 フィンガープリントは

~/.ssh/known_hosts

 に記録されている。visedで編集可能だ。

 1行1ホストなので、問題になっているホストの行だけ削除すればOK。


対策②:スマートにコマンドで消す

 ssh-keygenコマンドでホスト名を指定して削除ができる。

ssh-keygen -R ホスト名

注意

 相手が自分の管轄外のリモートホストだったら、良い子のみんなは確認取れるまで接続しないようにしようね!