Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Git克隆/拉取持续冻结在;将密钥存储在缓存中?“;_Windows_Git_Ssh_Version Control_Bitbucket - Fatal编程技术网

Windows Git克隆/拉取持续冻结在;将密钥存储在缓存中?“;

Windows Git克隆/拉取持续冻结在;将密钥存储在缓存中?“;,windows,git,ssh,version-control,bitbucket,Windows,Git,Ssh,Version Control,Bitbucket,我正在尝试将回购从我的BitBucket帐户克隆到我的Windows 10笔记本电脑(运行GitBash)。我已经完成了连接所需的所有步骤(设置SSH密钥,并通过成功SSHing进行验证)git@bitbucket.org等)。但是,每当我尝试克隆repo时,在确认要缓存Bitbucket的密钥后,提示会持续挂起 User@Laptop MINGW64 /C/Repos $ git clone git@bitbucket.org:mygbid/test.git Cloning into 'tes

我正在尝试将回购从我的BitBucket帐户克隆到我的Windows 10笔记本电脑(运行GitBash)。我已经完成了连接所需的所有步骤(设置SSH密钥,并通过成功SSHing进行验证)git@bitbucket.org等)。但是,每当我尝试克隆repo时,在确认要缓存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源主机时,也会要求缓存密钥,然后挂起而没有反馈。尽管在我进行SSH测试时没有要求缓存密钥,但git操作总是在每次失败之前要求缓存密钥


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

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

我通过使用Putty GUI以SSH方式连接到所讨论的服务器(在您的例子中是:bitbucket.org),然后在提示询问是否要将服务器密钥保存到缓存时单击“是”,从而解决了这个问题。再次运行克隆命令对我来说很有用

  • 开放式腻子
  • 键入主机名(如
    bitbucket.org
  • 单击“打开”
  • 在弹出窗口中单击“是”以缓存主机密钥
  • 封闭腻子

  • 要从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
    
    同样值得知道的是,油灰:

    要设置上述快捷方式,您可以将以下内容放入
    .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"
    

    为了解决这个问题,我将GitBash配置为使用带有
    -batch
    选项的plink。该选项禁用所有提示-plink将在不挂起的情况下终止,并且不会向缓存添加任何密钥指纹

    要将
    -batch
    参数添加到GitBash执行的plink命令中,可以设置git配置选项:

    git config --global core.sshCommand "plink -batch"
    
    或者设置
    GIT\u SSH\u命令
    环境变量

    从未知主机克隆repo时的输出类似于以下内容:

    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
    Connection abandoned.
    fatal: Could not read from remote repository.
    
    在此消息之后,您可以使用以下命令将密钥添加到缓存:

    echo y | plink git@bitbucket.org
    
    备注:请检查plink是否在您的
    路径中
    。或者在GitBash配置选项中使用类似UNIX的路径,例如:

    /c/Program\ Files/PuTTY/plink.exe -batch
    

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

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

    致命错误:已断开连接:没有支持的身份验证方法可用(服务器已发送:公钥)

    要同时解决这两个问题,请将git bash更改为使用SSH而不是PuTTY,方法是将以下内容添加到
    ~/.profile
    文件(
    C:\Users\\\.profile
    )。如果您还没有此文件,请使用此行创建一个新文件

    GIT_SSH="/usr/bin/ssh.exe"
    
    然后打开一个新的git bash窗口,再次尝试您的
    git克隆
    git拉动

    注意,如果您还没有SSH密钥,这可能需要您创建SSH密钥。为此,请按照网站上的说明进行操作


    请参阅以获取相关信息。

    我通过直接运行plink使其工作,在pageant运行后,直接使用plink命令-
    plink.exe-agent-vgit@github.com
    然后在这个git不挂起的情况下工作。

    在git bash shell中,检查git\u SSH是否存在:
    echo$GIT

    如果存在并设置为putty,则执行:
    unset GIT\u SSH

    您可能希望将其放入一个git bash启动脚本中。


    这不是一个普遍的解决办法。它在我们的特定情况下工作。

    这并没有直接为我解决问题,但它让我意识到问题与GitBash使用Putty进行ssh身份验证而不是OpenSSH有关。当我删除GIT_SSH系统变量并重置GitBash时,一切正常。谢谢使用
    putty
    添加
    github
    key-in-cache-worked-for-meth在Win7上使用命令控制台对我有效。我希望有人能告诉我为什么会发生这种情况,而不仅仅是一个解决办法。有人能告诉我怎么做上面说的吗solution@Shreyan梅塔刚打开油灰,主机名下粘贴git@github.com(或您正在使用的任何主机)。请确保选择SSH的连接类型。端口号应该是22。在启动这个程序之前,请确保将ssh密钥加载到pageant中。我也遇到了同样的问题。从git的输出来看,git似乎无法缓存主机密钥(可能是一个bug)。因此,您必须使用PuTTY GUI进行操作。我尝试了所有步骤,但当我选择“y”或“n”时,什么都没有发生Git Bash什么都没有您在步骤2中键入了正确的主机名吗?您是否尝试重新启动Git Bash?这与公认的答案有什么不同?我对这个答案投了赞成票,因为它提供了步骤。我不喜欢像接受的答案一样,它是一种变通方法(您必须对连接的每个SSH服务器重复此操作)。另请参阅前面关于plink这方面的问题和答案:
    致命错误:断开连接:没有支持的身份验证方法可用(服务器发送:publickey)
    如果您的遥控器在22以外的端口上运行,您需要通过向端口传递一个
    -P
    参数来运行plink。您好,我收到以下消息:致命错误:断开连接:没有支持的身份验证方法可用(服务器发送:公钥)很好的解决方案!这应该标记为答案这是最好的答案。我认为这不是一个解决办法,这是正确的解决方案。如果github存在此问题,在pageant使用密钥运行时在dos提示符下键入该命令即可解决此问题。我同意这是最好的答案!这就成功了。注册表中的值具有不同的格式,因此您也应该知道它。我对乌龟GIT的dialo有意见
    GIT_SSH="/usr/bin/ssh.exe"