使用SSH的Git克隆无法在Windows上工作-收到断开连接,无法从远程存储库读取

p1iqtdky  于 2023-01-24  发布在  Git
关注(0)|答案(3)|浏览(264)

我在一台新的笔记本电脑上安装了Git(2.20.1.windows.1版),但是我无法克隆任何Github仓库。我也尝试过Gitlab,也遇到了同样的问题。
这是我在克隆Github调试库时遇到的错误:

$ git clone git@github.com:github/debug-repo debug-repo-ssh

Cloning into 'debug-repo-ssh'...
Received disconnect from 140.82.118.4 port 22:11: Bye Bye
Disconnected from 140.82.118.4 port 22
fatal: Could not read from remote repository.

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

以下是ssh -vT git@github.com命令的输出:

$ ssh -vT git@github.com

OpenSSH_7.9p1, OpenSSL 1.1.1a  20 Nov 2018
debug1: Reading configuration data /c/Users/Tam/.ssh/config
debug1: /c/Users/Tam/.ssh/config line 1: Applying options for github.com
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to github.com [140.82.118.4] port 22.
debug1: Connection established.
debug1: identity file /c/Users/Tam/.ssh/id_github type 0
debug1: identity file /c/Users/Tam/.ssh/id_github-cert type -1
debug1: Local version string SSH-2.0-OpenSSH_7.9
debug1: Remote protocol version 2.0, remote software version babeld-64adca0f
debug1: no match: babeld-64adca0f
debug1: Authenticating to github.com:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: algorithm: curve25519-sha256@libssh.org
debug1: kex: host key algorithm: ssh-rsa
debug1: kex: server->client cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: kex: client->server cipher: chacha20-poly1305@openssh.com MAC: <implicit> compression: none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
Received disconnect from 140.82.118.4 port 22:11: Bye Bye
Disconnected from 140.82.118.4 port 22

它甚至没有到问我密码的地步。

gdx19jrr

gdx19jrr1#

我不知道为什么git捆绑的ssh在我的笔记本电脑上不起作用,但是我找到了一个稳定的解决方案。
1.从http://www.mls-software.com/opensshd.html安装了用于Windows的OpenSSH(OpenSSH_for_Windows_7.7p1)。我刚刚发现它也可以通过Windows 10 Creators Update获得
安装并重新打开PowerShell后,运行ssh -vT git@github.com要求输入密码并成功验证了我的身份,但git-agent命令失败,错误类似于Could not connected to the authentication agent
1.要修复ssh-agent问题,我只需要从services. msc启用OpenSSH Authentication Agent服务,并将启动模式设置为Automatic(延迟启动)。
ssh-agentssh-addssh-add -l命令可以运行了,但是git命令仍然失败,错误和之前完全一样。
1.为了解决git命令的最后一个问题,我将SSH_GIT环境变量设置为OpenSSH的安装位置,对我来说就是C:\Windows\System32\OpenSSH\ssh.exe. Here's a guide that should help.
一旦我这样做并重新启动PowerShell,git clone和所有其他命令开始工作。

pdkcd3nj

pdkcd3nj2#

尝试了我能在网上找到的各种解决方案,但都不起作用,除了answer from lzag
对于那些懒得关注链接的人,只需添加

Host github.com
    IdentityFile ~/.ssh/<your ssh key>

到C:\Program Files\Git\etc\ssh\ssh_config(如果你是在那里安装Git的话)

0md85ypi

0md85ypi3#

在同事的电脑上也遇到了同样的问题。来自git bash a ssh git@github.com对已认证的worked,而克隆却没有,原来git clone使用plink.exeplink.exe使用默认的 SSH -〉auth 身份(已设置为另一个密钥),而不是pageant中加载的密钥。删除Putty中存储的密钥(并将其保存在默认会话中)使plink再次通过pageant查找correct键。

相关问题