Unable to negotiate with 10.8.140.22 port 22: no matching host key type found. Their offer: ssh-rsa
时间: 2024-08-24 14:01:02 浏览: 129
这条信息通常出现在使用SSH协议尝试连接到远程服务器时,客户端无法接受服务器提供的主机密钥类型。SSH(Secure Shell)是一种加密的网络传输协议,用于在不安全的网络上进行安全的通信。在SSH连接过程中,会涉及到密钥交换和身份验证等安全机制,其中包括对服务器主机密钥的校验。
当客户端和服务器进行首次连接时,客户端会保存服务器的主机密钥,以便在后续连接时验证服务器身份。如果服务器提供了一种客户端不支持的密钥类型(在这个例子中是ssh-rsa),就会出现上述错误信息。
为了安全起见,很多现代SSH客户端默认不再支持ssh-rsa密钥,因为这种密钥类型被认为已经不够安全。RSA 1024位密钥长度已经不再被认为是安全的,而ssh-rsa通常意味着2048位的密钥长度,虽然更安全,但一些系统可能出于兼容性或安全策略的原因,禁用了这种类型。
解决这个问题的方法通常是更新客户端的SSH配置文件(通常是`~/.ssh/config`),或者在客户端软件中更改设置,以允许接受ssh-rsa类型的密钥。然而,建议的解决方案是更新服务器上的密钥类型,使用更加安全的密钥类型,如ecdsa, ed25519等。
相关问题
Unable to negotiate with 192.168.3.251 port 22: no matching host key type found. Their offer: ssh-rsa
这个错误通常是由于SSH客户端和服务器之间的密钥类型不匹配导致的。在这种情况下,服务器提供了一个客户端不支持的密钥类型。要解决这个问题,你可以尝试以下几种方法:
1.升级SSH客户端版本,以支持服务器提供的密钥类型。
2.在SSH客户端中指定所需的密钥类型。例如,如果服务器提供的密钥类型是ssh-rsa,你可以使用以下命令连接到服务器:
```ssh -oHostKeyAlgorithms=ssh-rsa username@192.168.3.251```
3.在服务器端配置支持客户端所需的密钥类型。这需要在服务器端进行更改,因此可能需要管理员权限。
Unable to negotiate with 106.52.160.162 port 22: no matching host key type found. Their offer: ssh-rsa
出"Unable to negotiate with 106.52.160.162 port 22: no matching host key type found. Their offer: ssh-rsa"的错误提示是因为Git找不到支持的密钥交换方法。新版Openssh中不再支持SHA1这种hash散列算法,需要手动允许对于SHA1的支持。
解决办法是在生成公钥的.ssh文件夹中,新建一个没有后缀的config文件,并在其中添加以下内容:
Host *
HostkeyAlgorithms ssh-rsa
PubkeyAcceptedKeyTypes ssh-rsa
保存后,再次使用git命令应该就能恢复正常啦。
阅读全文