我正试图从我的BitBucket帐户克隆一个回购到我的Windows 10笔记本电脑(运行GitBash)。我已经完成了连接所需的所有步骤(设置我的SSH密钥,通过成功SSHing git@bitbucket.org验证,等等)。然而,每当我试图克隆一个回购,提示不断挂断后,确认我想要缓存Bitbucket的密钥。

User@Laptop MINGW64 /C/Repos
$ git clone git@bitbucket.org:mygbid/test.git
Cloning into 'test'...
The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's rsa2 key fingerprint is:
ssh-rsa 2048 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n) y

没有文件被克隆,结果是一个空的repo。试图从这个repo启动一个git pull origin master也要求缓存键,然后挂起没有反馈。尽管我在测试SSH时没有请求缓存密钥,但git操作总是在每次失败前都请求密钥。

由于没有可以处理的错误消息,我真的不知道哪里出了问题。我尝试过多次回购,包括非常小的回购,但都没有成功。


当前回答

这听起来有点傻,但在尝试了以上所有方法之后,我决定使用默认选项重新安装Git Bash,它成功了。

其他回答

即使在执行其他答案中提到的解决方案后,您也可能会遇到如下错误:

致命错误:断开连接:不支持可用的身份验证方法(服务器发送:publickey)

要同时解决这两个问题,请将git bash更改为使用SSH而不是PuTTY,方法是在~/中添加以下代码。配置文件(C:\Users\<Username>\.profile)如果您还没有这个文件,那么使用这一行创建一个新文件。

GIT_SSH="/usr/bin/ssh.exe"

然后打开一个新的git bash窗口,尝试你的git克隆或git拉再次。

注意,如果您还没有SSH密钥,这可能需要您创建一个SSH密钥。要做到这一点,请遵循Bitbucket网站上的说明。

相关信息请参见这个SO问题。

我设法通过直接运行plink来让它工作,在pageant运行后直接使用plink命令- plink.exe -agent -v git@github.com然后在这个git工作后不挂起。

如果你使用KiTTY(而不是PuTTY),它有-auto-store-sshkey参数。

因此,你可以将GIT_SSH_COMMAND(或git config——global core.sshCommand)设置为c:/KiTTY/klink.exe -auto-store-sshkey。

输出仍然包含关于新键和问题的信息,但它不会等待答案:

The server's host key is not cached in the registry. You
have no guarantee that the server is the computer you
think it is.
The server's ssh-ed25519 key fingerprint is:
ssh-ed25519 255 2e:65:6a:c8:cf:bf:b2:8b:9a:bd:6d:9f:11:5c:12:16
If you trust this host, enter "y" to add the key to
PuTTY's cache and carry on connecting.
If you want to carry on connecting just once, without
adding the key to the cache, enter "n".
If you do not trust this host, press Return to abandon the
connection.
Store key in cache? (y/n)
Autostore key is on

默认SSH连接端口为7999

这听起来有点傻,但在尝试了以上所有方法之后,我决定使用默认选项重新安装Git Bash,它成功了。