このドキュメントでは、SSH 経由で Linux インスタンスに接続する際に発生する「error: Unable to load host key: /etc/ssh/ssh_host_rsa_key」エラーの原因とソリューションについて説明します。
症状
SSH を使用して Linux インスタンスに接続できません。Virtual Network Computing (VNC) を使用してインスタンスにログインし、cat /var/log/secure または cat /var/log/messages コマンドを実行してログを確認すると、次のようなエラーメッセージが表示されます。
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原因
この問題は、インスタンス上のキーファイルが無効であるために、sshd デーモンが SSH ホストキーを読み込めない場合に発生します。一般的な原因は次のとおりです:
SSH ホストキーファイルの権限が正しくありません。
例えば、秘密鍵ファイルのデフォルトの権限は
600です。777のように、より緩い値を設定すると、他のユーザーがファイルを読み取ったり変更したりできるようになります。SSH サービスはこれをセキュリティリスクとみなし、キーを無視するため、接続が失敗します。SSH ホストキーファイルが破損、削除、または改ざんされています。
ソリューション
この問題を解決するには、SSH ホストキーファイルを再生成します。
VNC を使用して Linux インスタンスに接続します。
詳細については、「接続方法の概要」をご参照ください。
ホストキーファイルを再生成します。
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次のコマンドを実行して、キーファイルが生成されたことを確認します。
ls -l /etc/ssh
SSH サービスを再起動します。
sudo systemctl restart sshd.service
次のステップ
ホストキーを再生成した後、SSH 経由でインスタンスに接続する際に、次のエラーが発生することがあります。このエラーは、ローカルマシンに古いホストキーの指紋がキャッシュされているために発生します。この問題を解決するには、「SSH を使用して Linux インスタンスに接続する際に「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.