本文主要介绍远程连接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
文档内容是否对您有帮助?