git 克隆永远挂在 github 上

问题描述 投票:0回答:19

当我按照 github guide 中的第 5 点(测试所有内容)时,ssh 命令也永远挂起。根据该指南,我应该看到一条消息“Github 不提供 shell 访问”。以下是我的 ssh -vT [电子邮件受保护]

的输出
debug1: Authentication succeeded (publickey).
Authenticated to github.com ([207.97.227.239]:22).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
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
git ssh github
19个回答
65
投票

在我的情况下,端口 22 被防火墙阻止,如果您启用了 2 因素身份验证,则通过

https
进行克隆可能无法工作。相反,编辑您的 .ssh 配置以使用另一个端口。在您的终端中:

nano ~/.ssh/config

然后添加这个:

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

59
投票

GitHub 提供了几种不同的方式来连接到远程存储库。 我处于繁重的防火墙后面。 所有方法也会挂起除了使用http(不是https)。

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

您也可以尝试:

最后,在 UNIX 命令前面加上

GIT_TRACE=1
GIT_CURL_VERBOSE=1
,并使用 Git 选项
--verbose
获得最大调试输出。

示例:

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


30
投票

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

例如而不是:

git clone [email protected]:repo-owner/my-project.git

通过

HTTPS
连接:

git clone https://[email protected]/repo-owner/my-project.git

23
投票

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

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

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


4
投票

确保您已安装 ssh。

Ubuntu:

sudo apt-get install ssh


2
投票

我在 Xubuntu 上也遇到了同样的问题。做

ssh -Tv [email protected]
会永远挂起。使用
sudo ufw disable
禁用防火墙解决了问题。


2
投票

在 Windows / msys2 上也遇到同样的问题。 好像和路由器有关系。 我 ping github.com,然后使用我的用户名进行克隆

git clone https://[email protected]/cchamberlain/<repo>

并且成功了。 不确定它是否是一次性的。


1
投票

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


1
投票

如果您在

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

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


0
投票

当 gitclone 和 gitpush 永远挂起时要检查的事情没有错误消息


0
投票

在我的例子中,IPV6 阻止克隆,我在 ssh 上禁用 ipv6 并且有效


0
投票

我的愚蠢情况是,我更改了默认 SSH 端口

/etc/ssh/ssh_config
而不是
/etc/ssh/sshd_config
🙈


0
投票

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


0
投票

在我的例子中,出现了一个身份验证/授权弹出窗口,但不知何故最终被隐藏在其他窗口后面,所以我没有看到它。 我最小化其他窗口来找到它,登录,然后 git clone 正常继续。


0
投票

就我而言,MacOS 钥匙串包含凭据,这些凭据最初是从 github.com 的 VS Code 提供的,用于 VS Code 同步功能。我不知道我在此期间更改了什么,也许切换到 2FA,但使用此凭据我无法从命令行登录 github.com,无论是通过 ssh 还是 https。在我删除 MacOS 钥匙串中的 github.com 条目后,它就可以工作了。


0
投票

问题出在mtu上,我的问题是这样解决的:

sudo ip link set mtu 100 dev eth0

然后git克隆


0
投票

如果您需要通过 ufw 允许

sudo ufw allow out on <yourAdapter> to any port 22 proto tcp

-1
投票

我只是在努力解决这个问题(更新为使用 API 令牌而不是密码后,自 21 年 7 月以来 github 上发生了变化)

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

就这么简单。


-1
投票

就我而言,我的

/etc/resolv.conf
搞砸了,我注意到电脑甚至无法运行
ping google.com
。解决了这个问题,生活就变得美好了。

© www.soinside.com 2019 - 2024. All rights reserved.