使用SSH命令登录Linux实例时出现“No supported key exchange algorit...

[复制链接]
查看: 435|回复: 0

28

主题

28

帖子

88

积分

注册会员

Rank: 2

积分
88
发表于 2019-9-22 15:36:02 | 显示全部楼层 |阅读模式
使用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服务相关的密钥文件异常所致,如下所示。

  • 相关密钥文件异常,比如文件损坏、被删除或篡改等。
  • 相关密钥文件权限配置异常,导致无法正确读取。

解决方案

要解决此问题,针对问题原因中不同情况,请依次进行如下配置检查或修改。

检查文件权限

SSH服务会对相关密钥文件的权限进行检查。比如,私钥文件默认权限是600,如果配置成777等其它权限,导致其它用户也有读取或修改权限。则SSH服务会认为该配置存在安全风险,进而导致客户端连接失败。

  • 登录实例,参考如下命令,恢复相关文件的默认权限。
    1. cd /etc/ssh/
    2. chmod 600 ssh_host_*
    3. chmod 644 *.pub
    复制代码

  • 执行ll命令,确认文件权限正常。
    1. total 156
    2. -rw-------. 1 root root 125811 Nov 23 2013 moduli
    3. -rw-r--r--. 1 root root 2047 Nov 23 2013 ssh_config
    4. -rw------- 1 root root 3639 May 16 11:43 sshd_config
    5. -rw------- 1 root root 668 May 20 23:31 ssh_host_dsa_key
    6. -rw-r--r-- 1 root root 590 May 20 23:31 ssh_host_dsa_key.pub
    7. -rw------- 1 root root 963 May 20 23:31 ssh_host_key
    8. -rw-r--r-- 1 root root 627 May 20 23:31 ssh_host_key.pub
    9. -rw------- 1 root root 1675 May 20 23:31 ssh_host_rsa_key
    10. -rw-r--r-- 1 root root 382 May 20 23:31 ssh_host_rsa_key.pub
    复制代码

检查文件有效性
  • 如果参阅前述步骤,修改相关文件权限后,还是无法正常连接。由于SSH服务在启动时会自动重建丢失的密钥文件。依次执行如下命令,确认存在ssh_host_*文件。
    1. cd /etc/ssh/
    2. ll
    复制代码
    系统显示类似如下。
    1. total 156
    2. -rw-------. 1 root root 125811 Nov 23  2013 moduli
    3. -rw-r--r--. 1 root root   2047 Nov 23  2013 ssh_config
    4. -rw-------  1 root root   3639 May 16 11:43 sshd_config
    5. -rw-------  1 root root    672 May 20 23:08 ssh_host_dsa_key
    6. -rw-r--r--  1 root root    590 May 20 23:08 ssh_host_dsa_key.pub
    7. -rw-------  1 root root    963 May 20 23:08 ssh_host_key
    8. -rw-r--r--  1 root root    627 May 20 23:08 ssh_host_key.pub
    9. -rw-------  1 root root   1675 May 20 23:08 ssh_host_rsa_key
    10. -rw-r--r--  1 root root    382 May 20 23:08 ssh_host_rsa_key.pub
    复制代码

  • 执行如下命令,删除相关文件。
    1. rm -rf ssh_host_*
    复制代码
    提示:对于Ubuntu、Debain类的操作系统,删除相关文件的命令如下所示。
    sudo rm -r /etc/ssh/ssh*key
  • 执行ll命令,确认文件删除成功。
    1. total 132
    2. -rw-------. 1 root root 125811 Nov 23  2013 moduli
    3. -rw-r--r--. 1 root root   2047 Nov 23  2013 ssh_config
    4. -rw-------  1 root root   3639 May 16 11:43 sshd_config
    复制代码

  • 执行如下命令,重启SSH服务,自动生成相关文件。
    1. service sshd restart
    复制代码
    提示:对于Ubuntu、Debain类的操作系统,重启SSH服务的命令如下所示。
    sudo dpkg-reconfigure openssh-server
  • 执行ll命令,确认成功生成ssh_host_*文件。
    1. total 156
    2. -rw-------. 1 root root 125811 Nov 23  2013 moduli
    3. -rw-r--r--. 1 root root   2047 Nov 23  2013 ssh_config
    4. -rw-------  1 root root   3639 May 16 11:43 sshd_config
    5. -rw-------  1 root root    668 May 20 23:16 ssh_host_dsa_key
    6. -rw-r--r--  1 root root    590 May 20 23:16 ssh_host_dsa_key.pub
    7. -rw-------  1 root root    963 May 20 23:16 ssh_host_key
    8. -rw-r--r--  1 root root    627 May 20 23:16 ssh_host_key.pub
    9. -rw-------  1 root root   1671 May 20 23:16 ssh_host_rsa_key
    10. -rw-r--r--  1 root root    382 May 20 23:16 ssh_host_rsa_key.pub
    复制代码

如果还存在问题,可以参阅通过SSH无法远程登录Linux实例的排查指引,进一步排查分析


腾讯云
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

精彩图文



在线客服(工作时间:9:00-22:00)
400-600-6565

内容导航

微信客服

Copyright   ©2015-2019  云服务器社区  Powered by©Discuz!  技术支持:尊托网络     ( 湘ICP备15009499号-1 )