2016-08-04 124 views
6

關於以下錯誤有很多問題,但它們都有相同的解決方案,但沒有任何影響:使用「KexAlgorithms diffie-hellman-group1-sha1」沒有解決「沒有找到匹配的密鑰交換方法」錯誤

$ git push 
Unable to negotiate with 192.168.XXX.XXX: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1 
fatal: Could not read from remote repository. 

Please make sure you have the correct access rights 
and the repository exists. 

有一個article on openssh.com沒有幫助。特別是這個建議:

...在的〜/ .ssh/config文件:

Host somehost.example.org 
KexAlgorithms +diffie-hellman-group1-sha1 

我確實做到了。我假設~在Windows上解析爲%userprofile%。我的文件在C:\Users\MY_USERNAME\.ssh\config

## use kex algorithm ## 
Host 192.168.XXX.XXX 
KexAlgorithms diffie-hellman-group1-sha1 

結果是沒有任何改變。也有建議使用ssh -o,但我還沒有找到一個答案,困擾描述如何做到這一點。我試過這個:

$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 
usage: ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec] 

我需要連接到該GIT存儲庫。我在窗戶上。該存儲庫使用Gerrit。我也使用SourceTree,並且在推送到存儲庫中沒有問題。所以這個倉庫可以工作,但是我的bash中的git或openSSH被破壞了。

我做錯了什麼,這種解決方案不適合我?

+0

嘗試使用「-vv」標誌運行ssh。它會打印它讀取的配置文件的名稱,並會打印密鑰交換的詳細信息。 – Kenster

回答

5

通過使用此命令我一些意見線程隨機找到解決:

export GIT_SSH_COMMAND='ssh -o KexAlgorithms=+diffie-hellman-group1-sha1' 

必須調用每次打開Git的Bash的時間。是的,混蛋是地獄。

0

我在Windows 10上解決了類似的問題,將我的Open SSH版本更新到最新版本(7.5p1-1),然後確保C:\ Program Files \ OpenSSH \ bin是系統路徑中的第一個條目,它使用ssh.exe而不是其他任何人。

相關問題