このトピックでは、SSH 経由で Linux Elastic Compute Service (ECS) インスタンスに接続する際に発生する「Host key verification failed」エラーの原因と解決策について説明します。
現象
-
Linux または macOS を実行しているクライアントから SSH 経由で Linux ECS インスタンスに接続すると、次のエラーメッセージが表示されます。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ 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 the RSA host key has just been changed. The fingerprint for the RSA key sent by the remote host is ae:6e:68:4c:97:a6:91:81:11:38:8d:64:ff:92:13:50. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending key in /root/.ssh/known_hosts:70 RSA host key for x.x.x.x has changed and you have requested strict checking. Host key verification failed. -
ローカルの Windows クライアントで PuTTY や MobaXterm などの SSH クライアントを使用して Linux ECS インスタンスに接続すると、「The host key does not match the one PuTTY has cached for this server」や「remote server identification has changed」などのエラーメッセージが表示されます。
PuTTY は、WARNING - POTENTIAL SECURITY BREACH! というセキュリティ警告ダイアログボックスを表示します。キータイプは ssh-ed25519 です。[承諾]、[一度だけ接続]、または [キャンセル] をクリックできます。
MobaXterm の警告ダイアログボックスには、[新しいサーバーホストキーを承諾して接続を続行]、[新しいサーバーホストキーを拒否して接続を中止]、[承諾して追加のホストキーとして保存 (既存のキーは保持)] の 3 つのオプションが表示されます。
原因
このエラーは、ECS インスタンスの SSH 公開鍵が変更された場合に発生します。これは、オペレーティングシステムの再インストールやアカウント情報の変更後などに発生する可能性があります。その結果、ローカルクライアントに保存されている公開鍵の指紋がサーバー上の指紋と一致しなくなり、セキュリティ警告がトリガーされます。
ソリューション
解決策は、お使いのローカルクライアントのオペレーティングシステムによって異なります。
ローカルクライアント:Windows
このセクションでは、PuTTY と MobaXterm を例に説明します。手順は他の SSH クライアントでは異なる場合があります。
PuTTY を使用している場合は、[承諾] をクリックします。PuTTY はキャッシュされた公開鍵の指紋を自動的に更新し、インスタンスにログインできるようになります。
MobaXterm を使用している場合は、[新しいサーバーホストキーを承諾して接続を続行] をクリックします。MobaXterm はキャッシュされた公開鍵の指紋を自動的に更新し、インスタンスにログインできるようになります。
ローカルクライアント:Linux または macOS
-
ローカルクライアントで、次のコマンドを実行して、お使いのユーザーアカウントの
known_hostsファイルを開きます。vim ~/.ssh/known_hosts -
キーボードの
iを押して挿入モードに入ります。 -
次の例に示すように、ECS インスタンスの IP アドレスに対応するエントリを削除します。
39.105. ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBEPMCfKNtd5Pkjp4A+ocwNzeTN fLNrUf3a0EfqXj4X4URJMPEzEl94ftuA7ZltOM0cAMkeZzOql ~ -
Escキーを押し、:wqと入力して Enter キーを押し、ファイルを保存して終了します。 -
Linux ECS インスタンスに再接続し、接続が成功することを確認します。