Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git错误:无法与XX.XX.XXX.XXX协商:未找到匹配的主机密钥类型。他们的提议:ssh-dss_Git_Ssh_Version Control_Repository_Vpn - Fatal编程技术网

Git错误:无法与XX.XX.XXX.XXX协商:未找到匹配的主机密钥类型。他们的提议:ssh-dss

Git错误:无法与XX.XX.XXX.XXX协商:未找到匹配的主机密钥类型。他们的提议:ssh-dss,git,ssh,version-control,repository,vpn,Git,Ssh,Version Control,Repository,Vpn,我正在尝试连接到通过VPN工作的存储库。我下载了Git,当我尝试克隆回购协议时,我收到以下消息: 无法与XX.XX.XXX.XXX协商:未找到匹配的主机密钥类型。他们的报价:ssh dss 我缺少什么吗?您正在尝试通过ssh协议进行克隆。另一方的ssh服务器要求您使用dss密钥身份验证,但git使用的ssh客户端没有访问权限,可能是因为您还没有创建一个 如何创建密钥取决于所使用的ssh客户端和操作系统 创建密钥时,实际上是在创建一个密钥对,其中包含一个私钥和一个公钥。服务器必须知道公钥,服务器才

我正在尝试连接到通过VPN工作的存储库。我下载了Git,当我尝试克隆回购协议时,我收到以下消息:

无法与XX.XX.XXX.XXX协商:未找到匹配的主机密钥类型。他们的报价:ssh dss


我缺少什么吗?

您正在尝试通过ssh协议进行克隆。另一方的ssh服务器要求您使用dss密钥身份验证,但git使用的ssh客户端没有访问权限,可能是因为您还没有创建一个

如何创建密钥取决于所使用的ssh客户端和操作系统

创建密钥时,实际上是在创建一个密钥对,其中包含一个私钥和一个公钥。服务器必须知道公钥,服务器才能对您进行身份验证


如何将公钥添加到服务器ssh服务器,取决于所使用的ssh服务器(或包装ssh服务器的git托管软件)。

我发现了问题,新的OpenSSH版本禁用了ssh dss(DSA)公钥算法。DSA被认为太弱,OpenSSH社区建议不要使用它

如果您看到与此类似的错误:

无法与10.96.8.72协商:未找到匹配的主机密钥类型。 他们的提议:ssh-dss

…然后,必须通过编辑~/.ssh/config文件来重新启用DSA密钥,以添加以下行:

HostkeyAlgorithms +ssh-dss
如果~/.ssh/config文件不存在,则可能需要创建该文件

创建文件后,必须限制访问权限:

chmod 600 ~/.ssh/config
然后进行克隆。
那应该很好用

我已经创建了密钥sir,并在执行克隆步骤之前将其添加到服务器。但我还是收到了这个错误。@user2628079,您可以使用ssh xx.xx.xxx.xxx连接到服务器?不,它会给我相同的错误message@user2628079那可能真的是ssh问题。如果您还没有本地计算机上的文件
~/.ssh/id_dsa
~/.ssh/id_dsa.pub
,请使用
ssh keygen-t dsa
创建它们,然后将文件
id_dsa.pub
插入服务器上的
授权密钥
id\u rsa.pub
identity.pub
不行。上面的注释适用于大多数ssh客户端。但并非所有情况都如此(例如在窗户下使用腻子)。对于所有git托管解决方案(如gitolite或gitlab),将密钥添加到服务器授权密钥文件不是正确的过程。您的本地用户名与远程计算机上的相同吗?也许你的网址错了。如果用户名不同,您还必须在URL中提供用户名,即git clone remote-user@remote-主机:/path/to/repo.git或者建议您的服务器管理员设置合理的密钥类型。我相信你不会是第一个也不是最后一个在该服务器上遇到此问题的人。没有理由只提供DSA密钥。这是最终的解决方案@Jakuje我会报告的@Jakuje没问题,但是如何配置服务器以提供更好的密钥?通常更新到更新的版本就足够了。