SSH:无法与XXX.XXX.XX.XXX协商:找不到匹配的密钥交换方法。他们提供:diffie-hellman-group1-sha1
我想用MINGW64克隆Windows上的回购,并且出现此错误。SSH:无法与XXX.XXX.XX.XXX协商:找不到匹配的密钥交换方法。他们提供:diffie-hellman-group1-sha1
$ git clone ssh://[email protected]/myproject && scp -p -P XXXXX [email protected]:hooks/commit-msg myproject/.git/hooks/
Cloning into 'myproject'...
Unable to negotiate with XXX.XXX.XX.XXX: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
fatal: Could not read from remote repository.
*已经检查文档http://www.openssh.com/legacy.html并在后http://www.openssh.com/legacy.html的解决方案,并仍然得到错误。
已加入该到我的配置文件 主机somehost.example.org KexAlgorithms +的Diffie-Hellman-组1-SHA1
任何帮助吗?
group1很弱,应该禁用;看到https://weakdh.org/sysadmin.html
只有支持group1的服务器是非常糟糕的。要求服务器运营商升级它是正确的修复方案。
如果您不顾一切地连接到它,您应该能够告诉您的客户端使用ssh选项KexAlgorithms +diffie-hellman-group1-sha1
启用它。可以使用-o
在ssh配置文件或命令行中设置它。如果你想使用命令行选项,你需要告诉git将选项传递给ssh,这在这个问题的答案中有解释:Passing ssh options to git clone
它的工作原理!感谢您的回答! –
git的存储库特定配置文件没有选择使用-o给出的命令行参数。所以我必须将这些参数(KexAlgorithms + diffie-hellman-group1-sha1)赋给〜/ .ssh/config中的ssh。然后它工作。我怀疑问题是,当我将这些参数提供给特定于存储库的git配置文件时,git所选择的ssh主机名是实际的IP地址,而当我将这些参数提供给ssh配置文件时,ssh将它应用于主机名的FQDN,它工作。真奇怪。 – zafar142003
你可以尝试搜索你的错误消息。这似乎直接导致了openssh.com网站上的文档。 – larsks
我已经检查了文档并按照步骤进行了操作,但仍然出现相同的错误。 @larsks –
然后更新你的问题,告诉你你试过了什么(特定的命令行),否则我们会一直告诉你同样的事情。 – larsks