2016-05-12 61 views
-1

我想用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

任何幫助嗎?

+0

你可以嘗試搜索你的錯誤消息。這似乎直接導致了openssh.com網站上的文檔。 – larsks

+0

我已經檢查了文檔並按照步驟進行了操作,但仍然出現相同的錯誤。 @larsks –

+1

然後更新你的問題,告訴你你試過了什麼(特定的命令行),否則我們會一直告訴你同樣的事情。 – larsks

回答

8

group1很弱,應該禁用;看到https://weakdh.org/sysadmin.html

只有支持group1的服務器是非常糟糕的。要求服務器運營商升級它是正確的修復方案。

如果您不顧一切地連接到它,您應該能夠告訴您的客戶端使用ssh選項KexAlgorithms +diffie-hellman-group1-sha1啓用它。可以使用-o在ssh配置文件或命令行中設置它。如果你想使用命令行選項,你需要告訴git將選項傳遞給ssh,這在這個問題的答案中有解釋:Passing ssh options to git clone

+1

它的工作原理!感謝您的回答! –

+0

git的存儲庫特定配置文件沒有選擇使用-o給出的命令行參數。所以我必須將這些參數(KexAlgorithms + diffie-hellman-group1-sha1)賦給〜/ .ssh/config中的ssh。然後它工作。我懷疑問題是,當我將這些參數提供給特定於存儲庫的git配置文件時,git所選擇的ssh主機名是實際的IP地址,而當我將這些參數提供給ssh配置文件時,ssh將它應用於主機名的FQDN,它工作。真奇怪。 – zafar142003

相關問題