linux服务器SSH远程目标主机报错:Unable to negotiate with xx.xxx.xxx.x port 22:no matching cipher found. Their offer: aes128-cbc,aes256-cbc,3des-cbc,des-cbc
问题描述:今天通过linux主机,远程其他linux服务器时报错:Unable to negotiate with xx.xxx.xxx.x port 22:no matching cipher found. Their offer: aes128-cbc,aes256-cbc,3des-cbc,des-cbc
问题原因定位:由于发起远程访问端的主机openssh版本过高(我的这台主机为最新8.1版本),导致不支持对低版本的远程连接主机的ssh解密,故报错。
解决方案:修改发起远程访问的本机SSH客户端配置(/etc/ssh/ssh_config)文件,将默认注释的:Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc使用即可。
vi /etc/ssh/ssh_config
Ciphers aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
以下为新增问题
问题二:今天通过linux主机,远程其他linux服务器时又报错:Unable to negotiate with xx.xx.xx.xx port 22: no matching key exchange method.found.Their.offer:diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
问题原因定位:根据提示,ssh不能远程登录的原因为:没有找到相关的主机密钥类型。
解决方案:修改发起远程访问的本机SSH客户端配置(/etc/ssh/ssh_config)文件,在最后加上一行:KexAlgorithms +diffie-hellman-group1-sha1
vi /etc/ssh/ssh_config
KexAlgorithms +diffie-hellman-group1-sha1