克隆git存储库的问题

deb*_*air 15 git ssh

我试图克隆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

fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
Run Code Online (Sandbox Code Playgroud)
$ 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)

  • 感谢您提供此答案,但是我仍然收到完全相同的错误。 (2认同)

小智 15

使用以下内容附加文件C:\Program Files\Git\etc\ssh\ssh_config对我有用

KexAlgorithms +diffie-hellman-group1-sha1,diffie-hellman-group14-sha1

(干杯)

  • 效果非常好! (2认同)

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


Cod*_*ard 7

您的问题在此处详细描述:

如果客户端和服务器无法就一组相互的参数达成一致,则连接将失败。
OpenSSH(7.0 及更高版本)将产生如下错误消息:
Unable to negotiate with 127.0.0.1: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1


设置备用 ssh 密钥

ssh-keygen -t rsa -C <your comment>
Run Code Online (Sandbox Code Playgroud)

现在在您的服务器帐户下添加公钥并重试。


Ven*_*ari 5

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 目录中。