この記事では、SSH 接続中に「REMOTE HOST IDENTIFICATION HAS CHANGED」という警告が表示される場合の対処法をご紹介します。
SSHホスト鍵の仕組み
SSH では、初回接続時に接続先ホストの公開鍵を保存し、次回接続時にこのホスト鍵を比較して同じホストに接続しているかを確認します。しかし、IP アドレスの変更や OS の再インストールなどでホスト鍵が変更されると、次のようなエラーメッセージが表示され、接続に失敗します。
$ ssh admin@192.168.0.110
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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
00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:00.
Please contact your system administrator.
Add correct host key in /user/user/.ssh/known_hosts to get rid of this message.
Offending RSA key in /user/user/.ssh/known_hosts:133
RSA host key for example.com has changed and you have requested strict checking.
Host key verification failed.
これは、中間者攻撃を防ぐための重要なセキュリティ機能ですが、意図して鍵を変更した場合は不便に感じることもあります。
known_hostsファイルからホスト鍵を削除する方法
この問題を解決するためには、`~/.ssh/known_hosts` の該当行を削除する必要があります。これは手動で行うこともできますが、次のように `ssh-keygen` コマンドの `-R` オプションを使用して行うことができます。
$ ssh-keygen -R sample.com
Host sample.com found: line 00 type RSA
/Users/user/.ssh/known_hosts updated.
Original contents retained as /Users/user/.ssh/known_hosts.old
このコマンドは、指定されたホストのエントリを `known_hosts` ファイルから削除します。
この記事では SSH 接続時に発生する可能性のある問題とその解決策をご紹介しました。
created by Rinker
¥2,950
(2024/11/21 16:49:32時点 Amazon調べ-詳細)