场景复现
因安全要求,需要升级当前服务器的openssh到最新的8.8p1版本,升级完成后CRT新会话无法正常连接,报错提示:
No compatible hostkey. The server supports these methods:rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519 系统信息: 操作系统:rhel7.6 openssl版本:1.1.1j zlib版本:1.2.11 CRT客户端版本:6.6.1
一、问题原因
高版本的openssh需要增加对旧版本CRT客户端密钥交换算法的支持。
二、解决方法
1.在配置文件中增加密钥交换算法
配置如下(我这里是/usr/etc/sshd_config文件,具体请根据自己的openssh安装配置情况而定): 在配置文件末尾增加如下两行,如果之前的配置文件中已经有KexAlgorithms配置,请注释掉。切记!
HostKeyAlgorithms=+ssh-rsa,ssh-dss
KexAlgorithms=+diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
2.重启sshd服务
重启方法如下:
service sshd restart
或者
systemctl restart sshd
总结
升级十分钟,排错3小时,当前网上资源太杂,刚开始找到的交换算法都不对,最终找到了上文中正确的8.8的交换算法配置,真心不容易。这个东西真的是有点靠运气。如果你也是相同的报错,可以参考本文试试,20211124亲测有效。
|