本文主要介紹遠程連接Linux系統的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_key
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": 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
問題原因
該問題可能的由于ECS實例中SSH服務相關的密鑰文件異常,導致sshd守護進程不能加載到正確的SSH密鑰。常見密鑰文件異常情況如下:
相關密鑰文件權限配置異常,導致無法正常讀取。
例如,私鑰文件默認權限是600,如果配置成777等其他權限,導致其他用戶也有讀取或修改權限。此時,SSH服務會認為該配置存在安全風險,導致連接失敗。
相關密鑰文件異常,例如文件損壞、被刪除或篡改等。
解決方案
您可以通過修改SSH服務相關的密鑰權限或修復密鑰文件來解決此問題。
以VNC方式遠程連接ECS實例。
具體操作,請參見連接方式概述。
執行如下命令,查看SSH服務的公鑰與密鑰文件。
ls -l /etc/ssh
執行如下命令,恢復相關密鑰文件的默認權限。
說明不同Linux發行版本中,密鑰權限可能不同,你可以參考相同Linux發行版本中密鑰權限進行修改。
cd /etc/ssh/ sudo chmod 600 ssh_host_* sudo chmod 644 *.pub
執行如下命令,重啟SSH服務。
重啟SSH服務時,將會自動生成相關密鑰文件。
sudo systemctl restart sshd.service
執行如下命令,確認已生成密鑰相關文件。
ls -l /etc/ssh
文檔內容是否對您有幫助?