【问题标题】:git clone hangs forever on githubgit clone 永远挂在 github
【发布时间】:2012-02-03 18:35:51
【问题描述】:

当我遵循 github guide 中的第 5 点(测试所有内容)时,ssh 命令也将永远挂起。根据指南,我应该看到一条消息“Github 不提供 shell 访问”。以下是我的 ssh -vT git@github.com 输出

debug1: Authentication succeeded (publickey).
Authenticated to github.com ([207.97.227.239]:22).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LC_MESSAGES = en_US.UTF-8
debug1: Sending env LC_COLLATE = en_US.UTF-8
debug1: Sending env LANG = da_DK.UTF-8
debug1: Sending env LC_CTYPE = en_US.UTF-8

【问题讨论】:

  • 您和 GitHub 之间是否存在任何形式的过滤/阻止?
  • 出于好奇,您能否毫无问题地连接到其他 SSH 服务器(使用密钥)?
  • 我还认为它可能正在过滤,但请注意身份验证成功,如果是防火墙,它最终会在此之前超时。
  • 我尝试了这里提到的所有解决方法,甚至使用似乎工作正常的ssh -T git@github.com 命令进行了仔细检查。然而,端口 22 上的连接超时。来自这个线程的答案 - stackoverflow.com/q/15589682/8604951 可能会帮助某人正确连接到 GitHub,而这个线程 - stackoverflow.com/q/25927914/8604951 应该有助于在 GitHub 中正确设置对远程的访问权限。但最后,通过 HTTPS 克隆对我有用。恕我直言,除非完全必要,否则设置 SSH 连接不值得痛苦。

标签: git ssh github


【解决方案1】:

GitHub 提供了几种不同的方式来连接到远程仓库。我在繁重的防火墙后面。所有方法也使用 http (not https) 挂起except

例如,JavaHamcrest 项目提供(匿名):

你也可以试试:

最后,在您的 UNIX 命令前加上 GIT_TRACE=1GIT_CURL_VERBOSE=1,并使用 Git 选项 --verbose 以获得最大的调试输出。

示例:env GIT_TRACE=1 GIT_CURL_VERBOSE=1 git clone --verbose http://github.com/hamcrest/JavaHamcrest.git

【讨论】:

  • 看来http(不是https)链接不再适用于github。 IE。您的示例命令不起作用,因为它使用了http 方案。
  • 还要检查您的 github 帐户是否有 ssh 密钥 - inchoo.net/dev-talk/…
【解决方案2】:

尝试使用 HTTPS 而不是 SSH。端口 22 可能被防火墙阻止。

例如而不是:

git clone git@bitbucket.org:repo-owner/my-project.git

通过HTTPS连接:

git clone https://username@bitbucket.org/repo-owner/my-project.git

【讨论】:

  • 在我的主机上工作。奇怪的是,另一种方法以前可以正常工作。
【解决方案3】:

在我的情况下,端口 22 被防火墙阻止,如果您启用了 2 因素身份验证,则通过 https 进行的克隆可能无法正常工作。而是编辑您的 .ssh 配置以使用另一个端口。在您的终端中:

nano ~/.ssh/config

然后添加这个:

Host github.com
  Hostname ssh.github.com
  Port 443

【讨论】:

  • 只需节省我几分钟的时间来寻找解决方案。谢谢!!!
【解决方案4】:

我想我发现了错误。我正在使用的 WiMAX 路由器将 SSH 搞乱了。在尝试另一个之后 互联网连接,一切顺利。 WiMAX 路由器是品牌 “Alvarion”,根据丹麦 Google 集团的说法,NAT 路由器中的实现被破坏: http://groups.google.com/group/openspaceaarhus/browse_thread/thread/e99d96122a0522b7.

我已联系互联网供应商对此进行调查。如果他们证明这与他们的路由器无关,我会在这里发布。

感谢大家的 cmets,这让我意识到这可能是一个基础设施问题。

【讨论】:

  • 您应该接受这个作为“正确答案”并为其他有帮助的答案点赞。
  • 使用此路由器的公司(Skyline)不久就倒闭了,所以我从未找到此路由器的解决方案。
  • 使用 VPN 为我解决了这个问题。
【解决方案5】:

确保您已安装 ssh。

Ubuntu:sudo apt-get install ssh

【讨论】:

  • 即使您安装了 ssh,也可能需要升级它们。升级后我发现它对我有用。
【解决方案6】:

我在 Xubuntu 上遇到了同样的问题。做ssh -Tv git@github.com 永远挂起。使用sudo ufw disable 禁用防火墙解决了这个问题。

【讨论】:

    【解决方案7】:

    在 Windows / msys2 上遇到同样的问题。好像是路由器的问题。我 ping 了 github.com,然后使用我的用户名克隆了

    git clone https://cchamberlain@github.com/cchamberlain/<repo>

    它奏效了。不确定它是否是一次性的。

    【讨论】:

      【解决方案8】:

      就我而言,我发现我的防病毒软件阻止了对 Github 的访问。弹出窗口出现在我之前没有意识到的所有窗口后面。我允许访问 GitHub 的那一刻“ssh -vT git@github.com”命令起作用了。我还能够克隆一个存储库并将我的代码从本地推送到 Github。

      【讨论】:

        【解决方案9】:

        当 git clone 和 git push 永远挂起没有错误信息时要检查的东西

        【讨论】:

          【解决方案10】:

          在我的情况下是 IPV6 阻止克隆,我在 ssh 上禁用了 ipv6 并且可以工作

          【讨论】:

            【解决方案11】:

            我只是在为此苦苦挣扎(在更新为使用 API 令牌而不是密码后,自 21 年 7 月以来在 github 上发生了更改)

            帮助我的是在 git clone 中使用 http 而不是 https。

            就这么简单。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-05-30
              • 1970-01-01
              • 1970-01-01
              • 2021-05-27
              • 1970-01-01
              • 2011-01-09
              相关资源
              最近更新 更多