我试图克隆git存储库,我收到错误
Unable to negotiate with <server>: no matching key exchange method found.
Their offer: diffie-hellman-group1-sha1
fatal: Could not read from remote repository.
Run Code Online (Sandbox Code Playgroud)
我编辑 ~/.ssh/config并添加了
Host somehost.example.org
KexAlgorithms +diffie-hellman-group1-sha1"
Run Code Online (Sandbox Code Playgroud)
但我仍然得到同样的错误.
其他解决方案是使用该命令,ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 user@127.0.0.1 -p 2222但我也得到连接拒绝端口号22.
我正在使用Windows机器.
sui*_*eng 15
touch ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
为遇到同一问题的人附上我的ssh配置
## use kex algorithm ##
Host 10.172.4.66
KexAlgorithms diffie-hellman-group1-sha1
## Avoid Write failed : boken pipe issue ##
ServerAliveInterval 120
TCPKeepAlive no
Run Code Online (Sandbox Code Playgroud)
如果遇到另一个问题,请使用更大的postBuffer
Run Code Online (Sandbox Code Playgroud)fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed
$ git config --global http.postBuffer 10000000000000000000000000000000
$ git clone ssh://xxx xx
Cloning into 'xx'...
remote: Counting objects: 105491, done.
remote: Compressing objects: 100% (32876/32876), done.
Receiving objects: 100% (105491/105491), 1.74 GiB | 19.55 MiB/s, done.
remote: Total 105491 (delta 67211), reused 104583 (delta 66603)
Resolving deltas: 100% (67211/67211), done.
Checking connectivity... done.
Checking out files: 100% (16545/16545), done.
Run Code Online (Sandbox Code Playgroud)
小智 15
使用以下内容附加文件C:\Program Files\Git\etc\ssh\ssh_config对我有用:
KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
(干杯)
yao*_*yao 12
我正在使用 Windows,因为我的情况 git clone 在 Jenkins 中失败(在系统用户下运行)。
添加
Host somehost.example.org
KexAlgorithms +diffie-hellman-group1-sha1
Run Code Online (Sandbox Code Playgroud)
进入~/.ssh/config将使克隆在当前用户工作时运行。
对于其他用户,OpenSSH 不会选择配置。我必须将上述配置添加到全局配置文件中: “C:\Program Files\Git\etc\ssh\ssh_config”才能使其工作。
这发生在我更新了 git-for-windows 客户端之后,新的 git 禁用了一些旧的密钥交换方法。另一种解决方法是安装旧版本的 git。例如:https : //github.com/git-for-windows/git/releases/tag/v2.20.1.windows.1
您的问题在此处详细描述:
如果客户端和服务器无法就一组相互的参数达成一致,则连接将失败。
OpenSSH(7.0 及更高版本)将产生如下错误消息:
Unable to negotiate with 127.0.0.1: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1
ssh-keygen -t rsa -C <your comment>
Run Code Online (Sandbox Code Playgroud)
现在在您的服务器帐户下添加公钥并重试。
Host xxxx.yyyy.com
KexAlgorithms +diffie-hellman-group1-sha1
Port portNumber
User userName-yourDomain-com
Run Code Online (Sandbox Code Playgroud)
将以上行包含在 .config 文件中,并将 .config 文件添加到 id_rsa.pub 和其他文件所在的 .ssh 目录中。