我正试图从我的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操作总是在每次失败前都请求密钥。

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


当前回答

要做到这一点,从powershell打开一个powershell窗口,并粘贴如下:

echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh git@github.com
echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh git@gist.github.com
echo y | & 'C:\Program Files (x86)\GitExtensions\PuTTY\plink.exe' -ssh git@bitbucket.org

或使用PuTTY独立版本:

echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh git@github.com
echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh git@gist.github.com
echo y | & 'C:\Program Files (x86)\PuTTY\plink.exe' -ssh git@bitbucket.org

另外值得知道的是,putty将已知的主机存储在注册表项下:

HKEY_CURRENT_USER\SoftWare\SimonTatham\PuTTY\SshHostKeys

你可以把下面的文件放到。reg文件中并运行:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\SOFTWARE\SimonTatham\PuTTY\SshHostKeys]
"rsa2@22:github.com"="0x23,0xab603b8511a67679bdb540db3bd2034b004ae936d06be3d760f08fcbaadb4eb4edc3b3c791c70aae9a74c95869e4774421c2abea92e554305f38b5fd414b3208e574c337e320936518462c7652c98b31e16e7da6523bd200742a6444d83fcd5e1732d03673c7b7811555487b55f0c4494f3829ece60f94255a95cb9af537d7fc8c7fe49ef318474ef2920992052265b0a06ea66d4a167fd9f3a48a1a4a307ec1eaaa5149a969a6ac5d56a5ef627e517d81fb644f5b745c4f478ecd082a9492f744aad326f76c8c4dc9100bc6ab79461d2657cb6f06dec92e6b64a6562ff0e32084ea06ce0ea9d35a583bfb00bad38c9d19703c549892e5aa78dc95e250514069"
"rsa2@22:gist.github.com"="0x23,0xab603b8511a67679bdb540db3bd2034b004ae936d06be3d760f08fcbaadb4eb4edc3b3c791c70aae9a74c95869e4774421c2abea92e554305f38b5fd414b3208e574c337e320936518462c7652c98b31e16e7da6523bd200742a6444d83fcd5e1732d03673c7b7811555487b55f0c4494f3829ece60f94255a95cb9af537d7fc8c7fe49ef318474ef2920992052265b0a06ea66d4a167fd9f3a48a1a4a307ec1eaaa5149a969a6ac5d56a5ef627e517d81fb644f5b745c4f478ecd082a9492f744aad326f76c8c4dc9100bc6ab79461d2657cb6f06dec92e6b64a6562ff0e32084ea06ce0ea9d35a583bfb00bad38c9d19703c549892e5aa78dc95e250514069"
"rsa2@22:bitbucket.org"="0x23,0xb9b88df3578371a7eb80c78bcda14fb30da436f11ca932a5fd5a8b6adfcc681df7a59cb4cb7ac966d9eac11daa38ebdbc0a6582a210ed4ee95a8d101c4abc925e942ab47535d64f9a5b3b68035c2ea1e900d709a1e8ea938718f532f9805a190446b92bac3040126225ae9d8374bc2008f106979d631734c7453f78c70091f4783b288869cb3c1941a784cd9baad823be27333833dc1f488a45b85952be75cf0a64965662302e3915378dcd5cfcd3ec903d804a29dff2fdf19df5deba4534b09e4dea6e44f152e339b3c43be98ddadfc56533192e216a3d673f00b4aa9cc9e7870acd8b6adb7e0feb77f2292fc2dede94819def3eb1e785541a06ab31ccf725f"

putty-hosts。reg要点

其他回答

开放的腻子 输入主机名(如bitbucket.org) 点击打开 在弹出窗口中单击是以缓存主机密钥 关闭腻子

默认SSH连接端口为7999

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

我在Windows 10上克隆回购时也遇到了这个问题。

我通过使用Putty GUI来SSH到有问题的服务器(在您的情况下:bitbucket.org),然后在提示询问是否要将服务器密钥保存到缓存时单击“Yes”。再次运行克隆命令,然后为我工作!

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

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

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

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

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

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

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