Unable to negotiate with 10.37.192.236 port 60022: no matching host key type found. Their offer: ssh-dss,ssh-rsa
时间: 2024-03-15 08:39:02 浏览: 211
这个错误信息是由于SSH客户端和服务器之间的密钥类型不匹配导致的。在这种情况下,SSH客户端无法与服务器进行协商,因为服务器提供的密钥类型不在客户端支持的列表中。
解决这个问题的方法是在SSH客户端配置文件中添加对应的密钥类型。具体步骤如下:
1. 打开SSH客户端配置文件(通常位于~/.ssh/config或/etc/ssh/ssh_config)。
2. 在文件中找到或添加以下行:
```
HostKeyAlgorithms +ssh-dss
```
这将允许客户端接受服务器提供的ssh-dss密钥类型。
3. 保存并关闭配置文件。
4. 重新连接到SSH服务器,应该不再出现"no matching host key type found"的错误。
请注意,使用ssh-dss密钥类型可能不是最安全的选择,因为它已经被认为是不安全的。建议使用更安全的密钥类型,如ssh-rsa或更高级别的密钥类型。
相关问题
Unable to negotiate with 192.168.6.236 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
当你尝试通过SSH(Secure Shell)连接到IP地址为192.168.6.236的服务器时,收到了如下的错误消息:“Unable to negotiate with 192.168.6.236 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss”。这个错误表明,客户端无法识别服务器提供的公钥类型(rsa和dss),通常是因为两者之间使用的加密算法版本不匹配。
简单解释就是,在客户端和服务器之间的密钥交换过程中,它们试图协商一种共同支持的加密算法来保护数据传输的安全。服务器提供的SSH公钥类型(rsa和dss)与客户端支持的公钥类型不符,导致连接失败。
解决这个问题的方法通常有以下几步:
1. 确保客户端和服务器都支持相同类型的SSH密钥,比如都是RSA。
2. 更新客户端的SSH配置文件(例如在Linux系统下通常是`~/.ssh/config`),添加或更新服务器的主机名和对应的公钥类型。
3. 如果服务器的密钥是新的,请将新密钥添加到客户端的`known_hosts`文件中,允许其信任并忽略证书类型差异。
windows Unable to negotiate with 192.168.4.21 port 22: no matching host key type found. Their offer: ssh-rsa
### 解决 Windows SSH 连接时主机密钥类型不匹配问题
当客户端和服务器无法就用于主机身份验证的公钥算法达成一致时,会出现错误消息:“Unable to negotiate with legacyhost: no matching host key type found. Their offer: ssh-dss.” 此类情况通常发生在较旧版本的SSH服务端仅支持`ssh-dss`类型的密钥而现代客户端默认不再接受这种弱加密方式。
为了使Windows环境下的SSH连接能够成功协商并使用更安全的`ssh-rsa`作为主机密钥类型,在服务器配置文件中启用额外的支持选项可以解决问题[^1]。具体操作如下:
对于OpenSSH服务器(常见于Linux/Unix),编辑/etc/ssh/sshd_config 文件,并确保包含以下设置:
```bash
HostKey /etc/ssh/ssh_host_rsa_key
PubkeyAcceptedKeyTypes=+ssh-rsa
```
然而针对Windows平台上的SSH实现,如果是在使用Windows自带的OpenSSH Server,则可以通过修改注册表来调整参数;如果是第三方软件如Bitvise WinSSHD 或者其他商业产品,请查阅对应产品的官方文档获取指导说明。
完成上述更改之后重启SSH服务以应用新的设定值。这将允许客户端尝试通过更强壮的安全协议建立会话的同时兼容那些只提供传统DSS密钥的老化设备或应用程序接口。
阅读全文
相关推荐















