SSH密钥协商失败,此问题为密钥类型缺失导致,现在遇到的类型有如下几个

1、Their offer: aes256-cbc,aes128-cbc,3des-cbc,des-cbc

Unable to negotiate with xx.xx.xx.xx port 22: no matching cipher found. Their offer: aes256-cbc,aes128-cbc,3des-cbc,des-cbc

无法与xx.xx.xx.xx 端口22协商:未找到匹配的密码。他们的报价:AES256 CBC、AES128 CBC、3DES CBC、DES CBC

可以在本地的/etc/ssh/ssh_config 文件中追加

 Ciphers +aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

 如果不想在全局中改也可在用户的配置是~/.ssh/config

理论上需要重启ssh服务,但这次忘了重启服务命令了,没有重启再次尝试可以了,提示输入密码

2、Their offer:ssh-dss

另一种密钥类型

终端远程登录ssh时,提示如下错误:

Unable to negotiate with 192.168.1.152 port 22: nomatching host host key type found. Their offer:ssh-dss

由提示得知,ssh不能远程登录的原因为:没有找到相关的主机密钥类型。

1、确实是主机密钥类型不符合

2、不存在相关主机密钥类型

  指定主机key算法(最后解决方案):

1)、命令中加参数

ssh -o HostKeyAlgorithms=+ssh-dss user@host

2)、在~/.ssh目录下添加config  

vi config

3)、在config中写入以下code:

Host *

HostKeyAlgorithms +ssh-dss

4)、重启ssh

service ssh restart

3、Their offer: aes128-cbc,aes192-cbc,aes256-cbc,3des-cbc

理论上只在~/.ssh/config修改就行,在用户目录下的.ssh文件夹新建一个config文件,输入

Host * Ciphers +aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

但是查看该服务器的~/.ssh下没有config文件,只能修改全局的配置,在/etc/ssh/ssh_config 文件中追加

在host下加入

Ciphers +aes128-cbc,3des-cbc,aes192-cbc,aes256-cbc

4、Their offer: diffie-hellman-group1-sha1

理论上只在~/.ssh/config修改就行,在用户目录下的.ssh文件夹新建一个config文件,输入

Host *

KexAlgorithms=+diffie-hellman-group1-sha1

但是查看该服务器的~/.ssh下没有config文件,只能修改全局的配置,在/etc/ssh/ssh_config 文件中追加

在host下加入

KexAlgorithms=+diffie-hellman-group1-sha1

综上,问题解决

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐