Unable to negotiate with 106.52.160.162 port 22: no matching host key type found. Their offer: ssh-rsa
时间: 2023-10-19 10:09:12 浏览: 246
出"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命令应该就能恢复正常啦。
相关问题
Unable to negotiate with 10.8.140.22 port 22: no matching host key type found. Their offer: ssh-rsa
这条信息通常出现在使用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.1.129 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
当你遇到 "Unable to negotiate with [IP地址] port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss" 这样的错误信息时,这通常是在尝试使用SSH(Secure Shell)连接到远程服务器时发生的。问题表明,你的SSH客户端无法识别从远程服务器(192.168.1.129)提供的公钥类型,该服务器支持rsa和dsa两种加密算法,但你的客户端可能只配置了一种或者不支持这两种。
1. **问题解释**:SSH在建立连接时会验证服务器的身份,这是通过公钥加密的方式完成的。服务器提供公钥类型(rsa或dss),而你的客户端期望的公钥类型与服务器提供的不符,导致协商失败。
2. **解决步骤**:
- **检查客户端设置**:确保你的SSH客户端配置了正确的公钥算法,可能是只添加了其中一种。检查你的`~/.ssh/known_hosts`文件,确认是否已经包含了该服务器的公钥信息。
- **更新客户端**:如果可能,升级你的SSH客户端到最新版本,有时新版本可能会包含对更多加密算法的支持。
- **手动添加公钥**:你可以尝试手动将服务器的公钥类型添加到客户端的信任列表中,允许它们匹配。
- **询问管理员**:如果以上都不行,可能是服务器的配置问题,需要联系服务器管理员确认他们是否正确设置了公钥和加密类型。
阅读全文