280

我在代理下,我正在成功推进 git 很长一段时间。
现在我无法突然进入 git。
我已经设置了 RSA 密钥和代理并仔细检查了它们,但无济于事,git 向我抛出了页面标题中显示的错误。

4

22 回答 22

431

对于我的情况,建议的解决方案都不起作用,所以我尝试自己修复它并解决了它。

对我来说,我在我的 AWS EC2 UBUNTU 实例上遇到了这个错误,我解决它的方法是编辑 ssh 配置(或者如果它不存在则添加它)。

sudo nano ~/.ssh/config

我添加了以下内容

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

然后,运行命令ssh -T git@github.com以确认问题是否已解决。

据此_

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

希望这可以帮助遇到与我相同问题的其他人。

于 2018-10-15T12:41:17.490 回答
298

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

ssh -T git@github.com

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

git config --local -e

更改条目

 url = git@github.com:username/repo.git

url = https://github.com/username/repo.git
于 2013-03-23T17:13:26.600 回答
49

基本 URL 重写

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

git config --global url."https://".insteadOf git://

现在,就像变魔术一样,所有 git 命令都会执行git://to的替换https://

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

于 2014-01-29T06:19:29.207 回答
42

在 .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
于 2019-03-13T19:32:23.197 回答
12

我遇到了同样的问题,找不到有效的解决方案。我在设置本地服务器时遇到了这个问题,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.

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

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

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

# 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

这是我的配置文件,现在 git 通过 ssh 运行良好!

于 2019-07-21T14:10:41.110 回答
10

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

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

于 2018-09-19T12:41:33.757 回答
4

执行:

nc -v -z <git-repository> <port>

您的输出应如下所示:

"Connection to <git-repository> <port> port [tcp/*] succeeded!"

如果你得到:

connect to <git-repository> <port> (tcp) failed: Connection timed out

您需要编辑 ~/.ssh/config 文件。添加如下内容:

Host example.com
Port 1234
于 2015-11-26T15:13:54.793 回答
4

对我来说,问题出在 ISP 方面。Internet 服务提供商未启用端口号。所以要求他们通过我的网络启用端口号并开始工作。
仅用于测试:连接到移动热点并键入ssh -T git@bitbucket.org or git pull.
如果它有效,然后请您的 ISP 启用该端口。

于 2020-10-13T12:11:51.060 回答
3

我遇到了同样的问题,但我找到的答案不同,认为有人可能会遇到这个问题,所以这是我的解决方案。

我必须将端口、、、和的 2 个 IP22列入80443名单9418

  • 192.30.252.0/22

  • 185.199.108.0/22

如果这些 IP 不起作用,可能是因为它们已更新,您可以在此页面上找到最新的。

于 2017-05-31T19:20:06.800 回答
2

在与 Ludder 类似的故障模式中,当我还没有登录到正确的公司 VPN 时,我收到了这个错误。:facepalm:

于 2021-04-19T17:02:02.810 回答
1

上面的答案为我提供了解决此问题所需的信息。在我的情况下,网址错误地以 ssh:/// 开头

要检查 git config 中的 url 是否正确,请打开 git config 文件:-

git config --local -e

检查 url 条目。它不应该在开头有 ssh:///。

输入错误:

 url = ssh:///git@github.com:username/repo.git

正确输入:

 url = git@github.com:username/repo.git

如果您的 url 是正确的,那么下一步将是尝试上面建议将协议更改为 http 的答案。

于 2019-04-30T22:51:28.333 回答
1

当我不小心切换到访客wifi 网络时,我收到了这个错误。不得不切换回我的默认wifi网络。

于 2019-06-07T20:18:19.477 回答
1

将 repo url 从 ssh 更改为 https 对我来说意义不大。因为我不想放弃一些额外的好处,所以ssh我更喜欢。https上面的答案非常好和准确。如果您在 GitLab 中遇到此问题,请转到他们的官方文档页面并像这样更改您的配置文件。

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab
于 2020-05-10T22:49:58.440 回答
1

重新启动计算机为我解决了它。
Git 版本:2.27.0.windows.1
操作系统版本:Windows 10

于 2020-07-12T03:04:49.320 回答
1

主要原因是公司最近安装的代理发生了变化,它阻止了除公司域之外的其他ssh连接。

我能够按照以下步骤成功连接:

  1. 仔细检查问题是我所假设的 ssh -T git@github.com

它应该以超时结束。

  1. 通过编辑本地远程 URL

ssh config --local -e

并从

url=git@github.com:asheeshjanghu/Journal.git

url=https://github.com/asheeshjanghu/Journal.git

重要的一点是,您必须在 url 中更改 2 个位置。

git@https:// 和从github:usernamegithub/username

最后通过做一个验证git fetch

于 2020-08-25T07:15:55.667 回答
1

好的试试这个ssh -T -p 443 git@ssh.github.com而不是ssh -T git@github.com

于 2021-12-12T04:04:13.200 回答
1

就我而言,问题是由我前一天在路由器上更改的设置引起的。所以在我的路由器上,我只需将设置恢复禁用 它就解决了我的问题。

在此处输入图像描述

于 2021-12-30T10:53:20.030 回答
0

我有这个问题 2 小时,结果是从 https 中删除“s”,然后执行以下操作:

git clone -b <branchName> http:<projecturl>

修复。

于 2019-11-28T10:51:50.493 回答
0

ISSUE: 产生问题的步骤:git clone git@github.com:sramachand71/test.git 首次在新笔记本电脑中 错误 ssh:连接到主机 github.com 端口 22:连接超时致命:无法从远程读取存储库。

请确保您具有正确的访问权限并且存储库存在。 SOLUTION 在系统中第一次克隆我们需要给克隆命令加上双引号。$ git clone "git@github.com:sramachand71/test.git" 我在系统中遇到了这个问题,即使一切都正确,但最后注意到双引号对于第一次或新用户的 url "repository_url.git" 是必须的在系统中。

于 2020-01-27T16:54:05.000 回答
0

我在使用常规 IP 和故障转移 IP 设置的服务器上遇到了这个问题。此时故障转移 IP 未指向服务器。我不得不从/etc/netplan/01-netcfg.yaml. 将故障转移 IP 指向该服务器可能也可以解决问题。

于 2020-09-11T20:14:45.430 回答
0

我的电脑在连接到 Github 时无法连接端口 22。我从来没有遇到过bitbucket的这个问题。如果您同时拥有 GitHub 和 bitbucket,那么

Host bitbucket.org
Hostname  altssh.bitbucket.org
Port  443


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

参考

它基本上在 443 端口而不是 22 端口连接 SSH。

于 2022-01-09T09:34:27.277 回答
-1

刷新我的 Internet 连接和终端的 git reload功能对我有用。

于 2021-07-26T08:49:27.993 回答