このトピックでは、SSH クライアントを使用して Linux Elastic Compute Service (ECS) インスタンスに接続するときに「error: Unable to load host key: /etc/ssh/ssh_host_rsa_key」というエラーメッセージが表示される問題の原因と解決策について説明します。
問題の説明
SSH を使用して Linux ECS インスタンスに接続できません。VNC を使用してインスタンスにログインし、cat var/log/secure または cat var/log/message コマンドを実行して secure または message ログを表示すると、次のエラーメッセージが表示されます。
error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
error: @ WARNING: UNPROTECTED PRIVATE KEY FILE! @
error: @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
error: Permissions 0777 for '/etc/ssh/ssh_host_rsa_key' are too open.
error: It is required that your private key files are NOT accessible by others.
error: This private key will be ignored.
error: Unable to load host key "/etc/ssh/ssh_host_rsa_key": bad permissions
error: Unable to load host key: /etc/ssh/ssh_host_rsa_keyerror: Unable to load host key "/etc/ssh/ssh_host_rsa_key": invalid format
error: Unable to load host key "/etc/ssh/ssh_host_rsa_key": invalid format
error: Unable to load host key: /etc/ssh/ssh_host_rsa_key
error: Unable to load host key "/etc/ssh/ssh_host_ecdsa_key": invalid format
error: Unable to load host key "/etc/ssh/ssh_host_ecdsa_key": invalid format
error: Unable to load host key: /etc/ssh/ssh_host_ecdsa_key原因
上記のエラーは、SSH ホストキーファイルの例外が原因で、sshd デーモンが正しい SSH ホストキーを読み込めないために発生する可能性があります。SSH ホストキーファイルでは、次の例外が発生する可能性があります。
SSH ホストキーファイルの権限が正しく構成されていないため、ファイルの読み取りに失敗します。
たとえば、秘密鍵ファイルのデフォルトの権限は 600 です。権限を 777 などの別の値に変更すると、他のユーザーにもファイルの読み取りまたは変更の権限が付与されます。この場合、SSH サービスは権限の構成をセキュリティリスクと見なします。その結果、SSH ホストキーを読み込めず、接続に失敗します。
SSH ホストキーファイルの破損、削除、改ざんなどのファイルの異常。
解決策
この問題を解決するには、次の手順を実行して SSH ホストキーファイルを再生成します。
VNC を使用して Linux ECS インスタンスに接続します。
詳細については、「ECS インスタンスへの接続方法」をご参照ください。
SSH ホストキーファイルを再生成します。
sudo rm -f /etc/ssh/ssh_host_* sudo /usr/bin/ssh-keygen -A sudo chmod 600 /etc/ssh/ssh_host_* sudo chmod 644 /etc/ssh/*.pub次のコマンドを実行して、SSH ホストキーファイルが再生成されたかどうかを確認します。
ls -l /etc/ssh
SSH サービスを再起動します。
sudo systemctl restart sshd.service
次のステップ
新しい SSH ホストキーが構成された後、SSH コマンドを実行して Linux ECS インスタンスに接続すると、次のエラーメッセージが表示されます。この問題は、古い SSH ホストキーのフィンガープリントがオンプレミスデバイスに保存されているために発生します。この問題の解決方法については、「SSH で ECS インスタンスにログインすると、「Host key verification failed」と表示される」をご参照ください。
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ 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.