【问题标题】:ssh: connect to host github.com port 22: Connection timed outssh:连接到主机 github.com 端口 22:连接超时
【发布时间】:2013-03-13 10:49:46
【问题描述】:

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

【问题讨论】:

  • 在您的移动设备上创建一个热点,通过您的移动设备连接,然后git push。为我工作。
  • 对于 Jenkins,请参阅:Why is Jenkins failing when fetching from git?
  • 我在英国的 Virgin Media 也遇到了同样的问题。我试图在家里通过 ssh 推/拉到 GitHub,但没有运气,但在工作中很好。所以我意识到我的 ISP 有问题。对我来说,简单的解决方法是使用 Cloudflare DNS 1.1.1.1 而不是默认的 DNS,这就是 @zundi 通过移动热点成功的原因。
  • 很奇怪!但我关闭了我的邮递员,它解决了! ??? (Win10)

标签: git ssh


【解决方案1】:

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

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


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

ref

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

【讨论】:

    【解决方案2】:

    在我的情况下,问题是由我前一天在路由器上更改的设置引起的。 因此,在我的路由器上,我只需将设置 Isolation 恢复为 disable 即可解决我的问题。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

        • git: 'reload' 不是 git 命令。请参阅“git --help”。
        【解决方案5】:

        重启电脑帮我解决了。
        Git 版本:2.27.0.windows.1
        操作系统版本:Windows 10

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

            • 这拯救了我的一天。谢谢
            【解决方案8】:

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

            【讨论】:

              【解决方案9】:

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

              【讨论】:

                【解决方案10】:

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

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

                sudo nano ~/.ssh/config

                我添加了以下内容

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

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

                根据this

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

                希望这对遇到与我相同的问题的其他人有所帮助。

                【讨论】:

                • 这个解决方案对我来说效果很好,虽然它没有解决 GitLab 的问题。在这种情况下,请考虑 GitLab.com 运行第二个 SSH 服务器,该服务器侦听常用端口 443,这不太可能被防火墙保护。您所要做的就是编辑您的~/.ssh/config 并更改您连接到 GitLab.com 的方式。在这种情况下,请参阅这篇文章:about.gitlab.com/2016/02/18/…
                • 您好,我遇到了同样的问题,我的路由器来自 NET,他阻止了 22 端口。该配置绝对解决了我的问题
                • 不是git配置而是ssh配置
                • 经过几个小时的寻找答案......你是冠军,为什么我们需要将 github.com 更改为 ssh.github.com?我还是不明白
                • 用于创建 ssh 配置文件:linuxize.com/post/using-the-ssh-config-file
                【解决方案11】:

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

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

                【讨论】:

                  【解决方案12】:

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

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

                  【讨论】:

                    【解决方案13】:

                    我有这个问题 2 小时,结果从 https 中删除了“s”,然后就这样做了:

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

                    修复它。

                    【讨论】:

                    • 请关闭此问题并将其标记为已回答
                    • 什么?这可能不是答案……拥有“s”的全部原因是为了与 repo 建立一个安全且加密的链接,哈哈。删除“s”会消除问题的全部意义。
                    【解决方案14】:

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

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

                    # 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 可以很好地工作!

                    【讨论】:

                    • 我特别需要在我的配置中添加 HostnamePort 行,而且 viola,它现在可以工作了。
                    【解决方案15】:

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

                    【讨论】:

                      【解决方案16】:

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

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

                      【讨论】:

                        【解决方案17】:

                        在 .ssh 文件夹内 创建“配置”文件

                        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
                        

                        【讨论】:

                        • 查看 Mahan_F 答案,详细解释为什么会发生这种情况。
                        • 这是在 GitLab 上唯一对我有用的东西。谢谢,伊萨克!
                        • 谢谢,终于在cPanel上搭建了github。
                        • Mahan_F 的详细信息在这里:stackoverflow.com/a/52817036/1603480
                        【解决方案18】:

                        快速解决方法:尝试切换到其他网络

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

                        【讨论】:

                        • 我从 WiFi 切换到 4G 并且它工作。我也不明白。
                        【解决方案19】:

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

                        我必须将端口 22804439418 的 2 个 IP 列入白名单:

                        • 192.30.252.0/22

                        • 185.199.108.0/22

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

                        【讨论】:

                          【解决方案20】:

                          执行:

                          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
                          

                          【讨论】:

                          • 我不确定每个人都会安装nc。那应该是什么? Netcat 什么的?
                          【解决方案21】:

                          基本 URL 重写

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

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

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

                          来源: git:// protocol blocked by company, how can I get around that?

                          【讨论】:

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

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

                          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
                          

                          【讨论】:

                          • 我曾经遇到过这个问题,但重新启动计算机解决了它。
                          • 致命:无法访问'gitlab.com:******.git/':端口号以'f'结尾
                          • 使用 https 代替 ssh 不是正确的解决方案。必须有办法在 git config 和 ssh 设置中设置代理来解决这个问题。
                          • 这会禁用 ssh 密钥,不是吗?
                          • Virgin Media UK 有一个儿童安全模式,我不得不禁用它。
                          猜你喜欢
                          • 1970-01-01
                          • 1970-01-01
                          • 2017-01-22
                          • 2015-09-17
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2022-01-01
                          相关资源
                          最近更新 更多