Jan
29
2021
使用SSH命令登录Linux实例时出现“No supported key exchange algorithms”错误
问题描述
使用SSH连接Linux系统的ECS实例时,客户端或服务端的secure日志中可能会出现类似以下信息,用户无法正常登录。
- Read from socket failed: Connection reset by peer.
- Connection closed by 192.X.X.1.
- sshd error: could not load host key.
- fatal: No supported key exchange algorithms [preauth].
- DSA host key for 192.X.X.1 has changed and you have requested strict checking.
- Host key verification failed.
- ssh_exchange_identification: read: Connection reset by peer.
问题原因
该问题的常见原因是由于SSH服务相关的密钥文件异常,导致sshd守护进程不能加载到正确的SSH主机密钥,以下所示。
说明:以下只是常见的问题原因,具体原因需要根据实际场景具体分析。
- 相关密钥文件异常,比如文件损坏、被删除或篡改等。
- 相关密钥文件权限配置异常,导致无法正确读取。
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
要解决此问题,针对问题原因中不同情况,请依次进行以下配置检查或修改。
- 检查文件权限
- 检查文件有效性
检查文件权限
SSH服务会对相关密钥文件的权限进行检查。比如,私钥文件默认权限是600,如果配置成777等其它权限,导致其它用户也有读取或修改权限。则SSH服务会认为该配置存在安全风险,进而导致客户端连接失败。
-
登录实例,参考以下命令,恢复相关文件的默认权限。
cd /etc/ssh/ chmod 600 ssh_host_* chmod 644 *.pub
-
执行ll命令,确认文件权限正常。
total 156 -rw-------. 1 root root 125811 Nov 23 2013 moduli -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config -rw------- 1 root root 3639 May 16 11:43 sshd_config -rw------- 1 root root 668 May 20 23:31 ssh_host_dsa_key -rw-r--r-- 1 root root 590 May 20 23:31 ssh_host_dsa_key.pub -rw------- 1 root root 963 May 20 23:31 ssh_host_key -rw-r--r-- 1 root root 627 May 20 23:31 ssh_host_key.pub -rw------- 1 root root 1675 May 20 23:31 ssh_host_rsa_key -rw-r--r-- 1 root root 382 May 20 23:31 ssh_host_rsa_key.pub
检查文件有效性
-
如果参阅前述步骤,修改相关文件权限后,还是无法正常连接。由于SSH服务在启动时会自动重建丢失的密钥文件。依次执行以下命令,确认存在ssh_host_*文件。
cd /etc/ssh/ ll
total 156 -rw-------. 1 root root 125811 Nov 23 2013 moduli -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config -rw------- 1 root root 3639 May 16 11:43 sshd_config -rw------- 1 root root 672 May 20 23:08 ssh_host_dsa_key -rw-r--r-- 1 root root 590 May 20 23:08 ssh_host_dsa_key.pub -rw------- 1 root root 963 May 20 23:08 ssh_host_key -rw-r--r-- 1 root root 627 May 20 23:08 ssh_host_key.pub -rw------- 1 root root 1675 May 20 23:08 ssh_host_rsa_key -rw-r--r-- 1 root root 382 May 20 23:08 ssh_host_rsa_key.pub
-
执行以下命令,删除相关文件。
rm -rf ssh_host_*
说明:对于Ubuntu、Debain类的操作系统,删除相关文件的命令以下所示。
sudo rm -r /etc/ssh/ssh*key
-
执行ll命令,确认文件删除成功。
total 132 -rw-------. 1 root root 125811 Nov 23 2013 moduli -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config -rw------- 1 root root 3639 May 16 11:43 sshd_config
-
执行以下命令,重启SSH服务,自动生成相关文件。
service sshd restart
说明:对于Ubuntu、Debain类的操作系统,重启SSH服务的命令以下所示。
sudo dpkg-reconfigure openssh-server
-
执行ll命令,确认成功生成ssh_host_*文件。
total 156 -rw-------. 1 root root 125811 Nov 23 2013 moduli -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config -rw------- 1 root root 3639 May 16 11:43 sshd_config -rw------- 1 root root 668 May 20 23:16 ssh_host_dsa_key -rw-r--r-- 1 root root 590 May 20 23:16 ssh_host_dsa_key.pub -rw------- 1 root root 963 May 20 23:16 ssh_host_key -rw-r--r-- 1 root root 627 May 20 23:16 ssh_host_key.pub -rw------- 1 root root 1671 May 20 23:16 ssh_host_rsa_key -rw-r--r-- 1 root root 382 May 20 23:16 ssh_host_rsa_key.pub
如果您有其他问题,可以联系北京志远天成阿里云代理商,为您提供一对一专业全面的技术服务,同时新老阿里云会员,均可享受我公司代理商价格,欢迎咨询!
本公司销售:阿里云新/老客户,只要购买阿里云,即可享受折上折优惠!>
我有话说: