ssh:无法解析主机名github.com:名称或服务未知;致命:远端意外挂断


76

设置GitHub帐户的过程可以很好地工作,但是当我尝试将存储库推送到GitHub时,这是行不通的。它显示的错误消息如下:

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

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

是什么导致此错误?


4
我也看到了这个问题,但它似乎是断断续续的-我等了10分钟然后消失了
Mark Butler 2013年

2
至少没有本地化。
Starkers

这个答案对我有用。
waldyrious

3
在我看来,github不支持通过ipv6进行克隆。我通过修改〜/ .ssh / config来强制ipv4(您必须自己弄清楚格式,因为我不能在注释中这样做):Host github.com * .github.com AddressFamily inet
user48678

正如答案之一所暗示的那样,这可能是暂时性的问题,不需要您进行任何更改,但需要等待github.com方面的问题解决。
matanster '16

Answers:


63

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

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

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


1
@JsonBruce和Fahmi:要详细了解DNS的工作原理,请阅读DNS的工作原理,只是在您提出任何请求时首先检查本地缓存中的“ IP分辨率”,但如果不存在,则尝试从您的/etc/resolv.conf中配置的名称服务器(对于UNIX / Linux)进行解析。检查en.wikipedia.org/wiki/Name_server
Vishrant

@FahmiRamadhan我相信,当github启用第三方DDOS保护时,其dns记录和/或服务器将发生变化,上述操作将刷新您的dns记录,从而使您指向受DDOS保护的服务器。(我已将此添加到答案中)
詹斯·蒂默曼

21

从HTTPS切换到SSH(对于我的原始远程服务器)后,我刚刚收到此错误。要修复,我只需运行以下命令(针对每个存储库):

ssh -T git@github.com

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

我从Git的“测试您的SSH连接指南”中获取了该命令,该指南是使用SSH指南连接至GitHub更大的一部分。


即使在执行此命令后也出现问题$ ssh -T git@github.com git@github.com:权限被拒绝(公钥)。
拉胡尔·阿南德

15

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,则他们可以选择从第三方启用DDOS保护。这意味着如果它们是DDOS的一部分,它们将更改其dns记录和/或服务器。

如另一个答案中所述,刷新dns,更改dns服务器或重新启动网络(可能会刷新dns缓存),如果github减轻了DDOS的影响,则可能会帮助您解决问题。

或者,如果您在ssh设置方面遇到问题,可以在这里找到ssh常见问题解答:http : //help.github.com/ssh-issues/

在终端的Windows中刷新DNS的其他方法

ipconfig /flushdns

在macos上

dscacheutil -flushcache

在Linux上

service nscd restart

或只是重新启动;)


3

就我而言,使用手动添加远程原点时,我拼错了一些内容git remote add origin ...

值得检查您的遥控器是否正确 git remote -v


0

有时重新启动计算机也是一个好主意。重新启动系统后,当我遇到相同的问题时,它告诉我您的私钥已被锁定,并且github无法访问它。.所以输入您的密码即可。


0

在centos 7上

  1. 使用命令检查IP地址ifconfig。您将获得这样的信息

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

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

    b。添加IP和主机一样ip_address hostname hostname

  3. 重启

它将附加ip和主机。


0

每个都可以帮助

  1. 确认是否仍使用ssh连接。输入此命令:ssh -T git@github.com

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.