繁体   English   中英

git 克隆永远挂在 github

[英]git clone hangs forever on github

当我遵循 github指南中的第 5 点(测试所有内容)时,ssh 命令也永远挂起。 根据指南,我应该看到一条消息“Github 不提供 shell 访问权限”。 下面是我的 output 来自 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 提供了几种不同的方式来连接到远程存储库。 我在一个繁重的防火墙后面。 除了使用 http(不是https)之外,所有方法也会挂起。

例如,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

尝试使用 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

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

nano ~/.ssh/config

然后添加这个:

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

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

我已经联系了互联网供应商来调查这个问题。 如果他们证明这与他们的路由器无关,我会在这里发布。

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

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

确保您已安装 ssh。

Ubuntu: sudo apt-get install ssh

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

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

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

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

如果您在/etc/ssh/sshd_config中有不同的默认 SSH 端口,则 git 克隆将无法使用git@... url 开箱即用。

上面的这个解决方案可以解决问题。

当 git clone 和 git push 永远挂起时要检查的事情没有错误消息

在我的例子中是 IPV6 阻止克隆,我在 ssh 上禁用 ipv6 并且工作

我的愚蠢案例是,我在/etc/ssh/ssh_config中更改了默认端口 SSH 而不是/etc/ssh/sshd_config

在我的例子中,我的/etc/resolv.conf被搞砸了,我注意到 pc 甚至无法ping google.com 解决了这个问题,生活就变得美好了。

再次克隆它为我解决了这个问题。 再试一次。

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

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

就那么简单。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM