ssh:连接到主机github.com端口22:连接超时

Vih*_*tla 139 git ssh

我是代理人,我正在推动git成功了很长一段时间.
现在我无法突然进入git.
我已经设置了RSA密钥和代理并对它们进行了双重检查,没有用,git正在向我抛出页面标题中显示的错误.

Vih*_*tla 215

原因可能是防火墙修改,因为你在网络下.(在这种情况下,他们可能故意阻止一些端口)
仔细检查这是否是原因...做

ssh -T git@github.com
Run Code Online (Sandbox Code Playgroud)

这应该超时.如果是这种情况,请使用http协议代替ssh,
只需将配置文件中的url更改为http即可.
方法如下: -

git config --local -e
Run Code Online (Sandbox Code Playgroud)

改变进入

 url = git@github.com:username/repo.git
Run Code Online (Sandbox Code Playgroud)

url = https://github.com/username/repo.git
Run Code Online (Sandbox Code Playgroud)

  • 英国维珍媒体有一个儿童安全模式,我必须禁用它。 (9认同)
  • 致命:无法访问“https://gitlab.com:******.git/”:端口号以“f”结尾 (3认同)
  • 这禁用了使用 ssh 密钥,不是吗? (3认同)
  • 我曾经遇到过这个问题,但重新启动计算机就解决了这个问题. (2认同)
  • 使用https代替ssh是不合适的解决方案。必须有一种方法可以在git config和ssh设置中设置代理来解决此问题。 (2认同)

Mah*_*n_F 112

适用于从Google访问此页面的用户.对于我的情况,没有一个建议的解决方案工作,所以我试图自己解决它,我得到了解决.

对我来说,我在我的AWS EC2 UBUNTU实例上收到此错误,我所做的解决方法是编辑git配置(如果它不存在则添加它).

sudo nano ~/.ssh/config

我添加了以下内容

Host github.com
 Hostname ssh.github.com
 Port 443
Run Code Online (Sandbox Code Playgroud)

然后,运行该命令ssh -T git@github.com以确认问题是否已修复.

根据这个

有时,防火墙拒绝完全允许SSH连接.如果使用带有凭据缓存的HTTPS克隆不是一个选项,则可以尝试使用通过HTTPS端口建立的SSH连接进行克隆.大多数防火墙规则应允许这样做,但代理服务器可能会干扰

希望这可以帮助那些遇到同样问题的人.

  • 这个解决方案对我来说效果很好,虽然它没有解决 GitLab 的问题。在这种情况下,请考虑 GitLab.com 运行第二个 SSH 服务器,该服务器侦听常用端口 443,该端口不太可能被防火墙设置。你所要做的就是编辑你的 `~/.ssh/config` 并改变你连接到 GitLab.com 的方式。在这种情况下,请参阅这篇文章:https://about.gitlab.com/2016/02/18/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port/ (5认同)
  • 嗨,我遇到了同样的问题,我的路由器来自 NET,他阻止了 22 端口。该配置绝对解决了我的问题 (2认同)
  • 经过几个小时的寻找答案...你是 CHAMP,无论如何,为什么我们需要将 github.com 更改为 ssh.github.com?我还是不明白 (2认同)

小智 40

基本URL重写

Git提供了一种使用git config重写URL的方法.只需发出以下命令:

git config --global url."https://".insteadOf git://
Run Code Online (Sandbox Code Playgroud)

现在,好像通过魔术,所有git命令将执行替换git://https://

来源: git://协议被公司阻止,我该如何解决这个问题?

  • 关于github,命令应该是:`git config --global url."https://github.com/".insteadOf git@github.com:`.注意区别:`@`变为`//`和`:`变为`/`. (13认同)
  • 这只是用 HTTPS 替换 SSH 吗?这不是真正的解决方案。 (4认同)
  • 谢谢!我们是在 Jenkins 构建期间,所以我无法手动编辑 git 文件(我没有 jenkins 帐户的 git 凭据) - 所以这非常有用。 (2认同)
  • 这很棒。我为每个人添加了 git 别名以便轻松切换 (2认同)

小智 12

在.ssh文件夹中创建“ config”文件

Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)

  • 有关发生这种情况的详细解释,请参阅 Mahan_F 答案。 (2认同)
  • 这是 GitLab 上唯一对我有用的东西。谢谢,伊萨克! (2认同)

小智 10

我遇到了同样的问题,找不到可行的解决方案。我在设置本地服务器时遇到了这个问题,git 无法通过我的代理网络连接,但我的工作站可以。这是我运行命令时的输出 ssh -vT git@github.com

ubuntu@server:~$ ssh -vT git@github.com
OpenSSH_7.2p2 Ubuntu-4ubuntu2.8, OpenSSL 1.0.2g  1 Mar 2016
debug1: Reading configuration data /home/ubuntu/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to github.com [13.234.176.102] port 22.
Run Code Online (Sandbox Code Playgroud)

因此,我尝试通过编辑配置文件使用通过 HTTPS 端口建立的 SSH 连接, ~/.ssh/config但无济于事。

Host github.com
 Hostname ssh.github.com
 Port 443
Run Code Online (Sandbox Code Playgroud)

最后,我找到了这篇文章,它解决并暴露了真正的问题。

# github.com
Host github.com
    Hostname ssh.github.com
    ProxyCommand nc -X connect -x <PROXY-HOST>:<PORT> %h %p
    Port 443
    ServerAliveInterval 20
    User git
Run Code Online (Sandbox Code Playgroud)

这是我的配置文件,现在 git 可以通过 ssh 完美运行!

  • @Animesh Singh 这里的 &lt;proxy-Host&gt;:&lt;port&gt; 是什么? (2认同)

kip*_*ip2 9

快速解决方法:尝试切换到不同的网络

我在热点(3/4G 连接)上遇到了这个问题。切换到不同的连接 (WiFi) 解决了它,但这只是一种解决方法 - 我没有机会深入问题的根源,因此其他答案可能更有趣以确定潜在问题

  • 我从 WiFi 切换到 4G,效果很好。我也不明白。 (3认同)

小智 9

对我来说,问题出在我的互联网服务提供商 (ISP) 上——端口 22 (ssh) 未启用。所以我要求他们启用网络上的端口,它开始工作。

要查看这是否是问题所在,请连接到您的移动热点并运行:

ssh -T git@bitbucket.org或者git pull
如果有效,请要求您的 ISP 启用端口 22。


小智 9

尝试

ssh -T -p 443 git@ssh.github.com

代替

ssh -T git@github.com

  • 如果连这个都失败了,那意味着什么? (4认同)

Ala*_*inD 7

这个答案是基于 @zundi 对主要问题的评论(功劳应该归功于谁,谢谢 zundi):

  • 在移动设备上创建热点并连接到该热点
  • git push
  • 关闭移动设备上的热点并重新连接原来的网络
  • git push继续工作

我不知道为什么临时连接到热点会神奇地“启动”原始网络连接。