【问题标题】:ssh: Could not resolve hostname github.com: Name or service not known; fatal: The remote end hung up unexpectedlyssh:无法解析主机名 github.com:名称或服务未知;致命:远端意外挂断
【发布时间】:2012-02-22 10:53:15
【问题描述】:

设置 GitHub 帐户的过程很好,但是当我尝试将我的存储库推送到 GitHub 时它不起作用。它显示的错误信息如下:

ssh: Could not resolve hostname github.com: Name or service not known
fatal: The remote end hung up unexpectedly

我已尝试更改 RSA 密钥,但仍然出现错误。

是什么导致了这个错误?

【问题讨论】:

  • 我也看到过这个问题,但它似乎是间歇性的 - 我等了 10 分钟然后它就消失了
  • 至少没有本地化。
  • This answer 为我工作。
  • 对我来说,github 似乎不支持通过 ipv6 进行克隆。我通过修改 ~/.ssh/config 强制 ipv4(你必须自己弄清楚格式,因为我不能在 cmets 中这样做):Host github.com *.github.com AddressFamily inet
  • 正如其中一个答案所暗示的那样,这可能是一个暂时性问题,您无需进行任何更改,但等待 github.com 方面的问题解决。

标签: git


【解决方案1】:

最近,我也看到了这个问题。下面,你有我的解决方案:

  1. ping github.com,如果 ping 失败。这是 DNS 错误。
  2. sudo vim /etc/resolv.conf,添加: 名称服务器 8.8.8.8 域名服务器 8.8.4.4

或者它可能是一个真正的网络问题。使用sudo service network-manager restart 重新启动您的网络管理器或修复它

【讨论】:

  • @JsonBruce 和 Fahmi:要了解更多关于它为什么起作用的信息,请阅读 DNS 的工作原理,只是为了让您注意,当您发出任何请求时,它首先会检查本地缓存中的“IP 解析”但如果它不存在,那么它会尝试从 /etc/resolv.conf 中配置的名称服务器解析(在 UNIX/Linux 的情况下)。检查en.wikipedia.org/wiki/Name_server
  • @FahmiRamadhan 我相信当 github 启用第 3 方 DDOS 保护时,他们的 dns 记录和/或服务器会发生变化,上述操作将刷新您的 dns 记录,将您指向受 DDOS 保护的服务器。 (我已将此添加到我的答案中)
  • 将域名服务器添加到/etc/resolv.conf 为我解决了这个问题!之前它只有路由器名称服务器,显然无法正常工作。
  • 重置设备网络对我有用
【解决方案2】:

从 HTTPS 切换到 SSH(对于我的原始远程)后,我刚刚收到此错误。为了解决这个问题,我只需运行以下命令(针对每个 repo):

ssh -T git@github.com

收到成功的响应后,我可以使用 ssh 获取/推送到 repo。

我从 Git 的 Testing your SSH connection 指南中获取了该命令,该指南是更大的 Connecting to GitHub with with SSH 指南的一部分。

【讨论】:

  • 即使在执行此命令后仍出现问题 $ ssh -T git@github.com git@github.com: Permission denied (publickey).
  • 我能够成功测试我的连接,但由于 OP 的错误,fetch 仍然失败。原来我已将 ssh:// 协议添加到 GitHub 给我的 SSH 存储库 URL,这导致它失败。删除旧的来源并使用来自 GitHub 的确切 SSH URL 重新添加已修复它。
  • ssh: Could not resolve hostname github.com: nodename nor servname provided, or not known
【解决方案3】:

Github 目前(2012 年 2 月 22 日,2016 年 9 月 5 日)在推/拉 ssh 方面存在一些问题。 我遇到了同样的问题。

使用 https 是可行的想法。

您可以按照以下指南尝试推送 https:https://help.github.com/articles/using-ssh-over-the-https-port/

这只有在 https 不受影响时才有帮助。 如果https://status.github.com/ 有放缓迹象,你可以试试。 平均响应时间增加的图表意味着 github 存在问题(或可能是 DDOS),而不是您的问题。

如果 github 当前正在被 DDOS 攻击,他们可以选择启用来自第 3 方的 DDOS 保护。这意味着如果它们是 DDOS 的一部分,他们会更改其 dns 记录和/或服务器。

如果 github 正在缓解 DDOS,则如另一个答案中所述,刷新您的 dns、更改您的 dns 服务器或重新启动您的网络(这可能会刷新您的 dns 缓存)可能有助于为您解决问题。

或者,如果您的 ssh 设置有问题,您可以在此处找到 ssh 常见问题解答:http://help.github.com/ssh-issues/

其他刷新 dns 的方法, 在终端的窗口中

ipconfig /flushdns

在 macOS 上

dscacheutil -flushcache

在 Linux 上

service nscd restart

或者干脆重启;)

【讨论】:

    【解决方案4】:

    在我的情况下,我在使用 git remote add origin ... 手动添加远程源时拼写错误。

    git remote -v检查你的遥控器是否正确

    【讨论】:

      【解决方案5】:

      这些都有帮助

      1. 确认您是否仍使用 ssh 连接。 输入这个: ssh -T git@github.com

      如果您收到消息表明您已成功通过身份验证并且 github 不支持 shell 访问,那么您可以尝试再次推送您的代码。

      2) 创建一个新的 ssh 密钥,将其添加到 github 并使用它进行测试 ssh -T git@github.com

      【讨论】:

      • 字面意思是什么是“git@github.com”,应该是什么,举个例子,在这个无限的“git@github.com”中可以添加邮箱地址、用户名、repos。 com”。这是典型的github,你需要读懂他们的想法。
      • 嗨 @BrianWiley,git@github.com 是 Github 为用户提供的电子邮件,用于检查您在本地计算机和 Github 之间生成的 SSH 连接是否正常。
      • 谢谢,我意识到既然没有,您只需输入即可
      • 我正在在线阅读此内容,但在执行ssh -T git@github.com 时仍然收到错误消息。这个答案对我没有帮助
      【解决方案6】:

      有时重启机器也是个好主意。当我在重启系统后遇到同样的问题时,它告诉我你的私钥被锁定了,github无法访问它..所以输入你的密码来做..我输入了密码然后问题就解决了。

      【讨论】:

        【解决方案7】:

        如果您使用 Windows 10 并且遇到此错误,请尝试使用 ssh -T git@github.com 再次向 Github 进行身份验证。它对我来说就像魅力一样。

        【讨论】:

          【解决方案8】:

          您可以通过尝试连接到 git@github.com 来检查正在使用的密钥:

          $ ssh -vT git@github.com
          > ...
          > debug1: identity file /Users/you/.ssh/id_rsa type -1
          > debug1: identity file /Users/you/.ssh/id_rsa-cert type -1
          > debug1: identity file /Users/you/.ssh/id_dsa type -1
          > debug1: identity file /Users/you/.ssh/id_dsa-cert type -1
          > ...
          > debug1: Authentications that can continue: publickey
          > debug1: Next authentication method: publickey
          > debug1: Trying private key: /Users/you/.ssh/id_rsa
          > debug1: Trying private key: /Users/you/.ssh/id_dsa
          > debug1: No more authentication methods to try.
          > Permission denied (publickey).
          

          在该示例中,我们没有任何密钥可供 SSH 使用。 “身份文件”行末尾的“-1”表示 SSH 找不到要使用的文件。稍后,“尝试私钥”行也表明没有找到文件。如果文件存在,这些行将分别为“1”和“提供公钥”:

          $ ssh -vT git@github.com
          > ...
          > debug1: identity file /Users/you/.ssh/id_rsa type 1
          > ...
          > debug1: Authentications that can continue: publickey
          > debug1: Next authentication method: publickey
          > debug1: Offering RSA public key: /Users/you/.ssh/id_rsa
          

          验证公钥是否已附加到您的帐户

          您必须向 GitHub 提供您的公钥才能建立安全连接。

          1. 打开终端。

          2. 在后台启动 SSH 代理。

            $ eval "$(ssh-agent -s)"

            代理 pid 59566

          3. 查找并记下您的公钥指纹。

            $ ssh-add -l -E sha256

            2048 SHA256:274ffWxgaxq/tSINAykStUL7XWyRNcRTlcST1Ei7gBQ /Users/USERNAME/.ssh/id_rsa (RSA)

          4. 在任何 github 页面的右上角,单击您的个人资料 照片,然后点击设置。

          5. 在用户设置侧边栏中,单击 SSH 和 GPG 密钥。

          6. 将 SSH 密钥列表与 ssh-add 的输出进行比较 命令。

          7. 如果您在 GitHub 中看不到您的公钥,则需要将您的 SSH 密钥添加到 GitHub 以将其与您的计算机相关联。

          关注link了解详情

          【讨论】:

            【解决方案9】:

            在 centos 7 上

            1. 使用命令ifconfig检查IP地址。你会得到这样的信息

              ens33: flags=****<UP,BROADCAST,RUNNING,MULTICAST>  mtu ****
              
              inet ***.***.***.***  netmask ***.***.***.0  broadcast ***.***.***.***
              
            2. 在文件/etc/hosts中添加inet ip地址和主机名

              一个。打开文件vi /etc/hosts

              b.添加ip和主机如ip_address hostname hostname

            3. 重启

            它将附加 ip 和主机。

            【讨论】:

              【解决方案10】:

              我遇到了这个确切的问题,我所要做的就是重新启动我的桌面

              【讨论】:

                【解决方案11】:

                如果 ping github.com 出现以下错误: ping: 无法解析 github.com: Unknown host

                请等待几分钟,然后重试。

                【讨论】:

                  猜你喜欢
                  • 2013-08-10
                  • 2019-12-18
                  • 2022-01-17
                  • 2019-04-07
                  • 1970-01-01
                  • 2013-12-13
                  • 1970-01-01
                  • 1970-01-01
                  • 2014-09-18
                  相关资源
                  最近更新 更多