我正在尝试连接到通过我的VPN工作的存储库。我下载了 Git,当我尝试克隆存储库时,我收到以下消息:
Unable to negotiate with XX.XX.XXX.XXX : no matching host key type found . their offer: ssh-dss
我错过了什么吗?
我发现了问题,新的OpenSSH版本禁用了ssh-dss(DSA)公钥算法。DSA被认为太弱,OpenSSH社区建议不要使用它。
如果您看到类似如下的错误:
无法与 10.96.8.72 协商:未找到匹配的主机密钥类型。 他们的报价: ssh-dss
。然后,您必须通过编辑 ~/.ssh/config 文件来重新启用 DSA 密钥以添加以下行:
HostkeyAlgorithms +ssh-dss
如果 ~/.ssh/config 文件尚不存在,您可能需要创建该文件。
创建文件后,必须限制访问权限:
chmod 600 ~/.ssh/config
然后进行克隆。这应该可以正常工作!
您正在尝试通过 ssh 协议进行克隆。另一端的 ssh 服务器要求您使用 dss 密钥身份验证,但 git 使用的 ssh 客户端无法访问,可能是因为您尚未创建。
创建密钥的方式取决于所使用的 ssh 客户端和操作系统。
创建密钥时,您实际上是在创建一个密钥对,其中包含一个私钥和一个公钥。服务器必须知道公钥,服务器才能对您进行身份验证。
如何将公钥添加到服务器 ssh 服务器,取决于使用的 ssh 服务器(或包装 ssh 服务器的哪个 git 托管软件)。