繁体   English   中英

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

[英]ssh: connect to host github.com port 22: Connection timed out

我在代理下,我成功地推入了 git 很长一段时间。
现在我不能突然推入 git。
我已经设置了 RSA 密钥和代理并仔细检查了它们,但没有用,git 向我抛出页面标题中显示的错误。

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

对我来说,我在我的 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 连接进行克隆。 大多数防火墙规则应该允许这样做,但代理服务器可能会干扰

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

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

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

基本 URL 重写

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

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

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

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

在 .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

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

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

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

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

执行:

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

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

我必须将229418 443的 2 80 IP 列入白名单:

  • 192.30.252.0/22

  • 185.199.108.0/22

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

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

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

上面的答案为我提供了解决此问题所需的信息。 在我的情况下,网址错误地以 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 的答案。

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

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab

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

主要原因是公司最近安装的代理发生了变化,它阻止了除公司域之外的其他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进行验证

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

在此处输入图像描述

我的电脑在连接到 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。

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

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

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

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

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

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

解决它。

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" 是必须的在系统中。

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

建议检查互联网连接或连接到另一个连接。

所以我遇到了同样的问题(不是在代理后面)并且遇到了这个问题。 这是我为修复它所做的:

尝试运行ssh -T git@github.com并确实超时,但添加-o KexAlgorithms=ecdh-sha2-nistp521建立了成功的连接(从this answer to a semi-related question中找到)。

为了永久解决这个问题,我刚刚在~/.ssh/configgithub.com下添加了一行KexAlgorithms=ecdh-sha2-nistp521 现在一切似乎都很好。

如果您在 Windows 中,请移至存储 ssh 密钥的目录,然后重试,它对我有用。

为我解决的是在密钥文件上执行ssh-add

ssh-add C:/Path/To/Key.pem

C:/用户/用户/.ssh/config:

Host sshapp
    Hostname ssh.github.com
    IdentityFile C:/Path/To/Key.pem
    Port 443

然后克隆使用:

>git clone git@sshapp:<git_user>/app.git
Cloning into 'app'...
The authenticity of host '[ssh.github.com]:443 ([140.82.121.35]:443)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6T.....vCOqU.

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

暂无
暂无

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

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