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

设置 GitHub 帐户的过程工作得很好,但是当我试图将存储库推送到 GitHub 时,它就不工作了。它显示的错误消息如下:

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

I have tried changing RSA keys and all but still getting error.

是什么导致了这个错误?

270883 次浏览

Github is currently (on 22nd of feb 2012, again on 5th of sept 2016) having some problems with pushing/pulling over ssh. 我也遇到了同样的问题。

拦截 https 是一个可行的想法。

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

This would only help if https is not affected. 您可以尝试查看 https://www.githubstatus.com/,看看在 github 的末端是否有任何报告的问题。

如果 github 目前正在进行 DDOS 操作,他们可能会选择启用对第三方的 DDOS 保护。这意味着,如果 dns 记录和/或服务器是 DDOS 的一部分,它们将更改它们的 dns 记录和/或服务器。

刷新您的 dns,更改您的 dns 服务器或重新启动您的网络(这可能会刷新您的 dns 缓存) ,如果 github 缓解 DDOS 的问题,可能有助于解决这个问题。

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

还有其他方法冲洗你的牙齿, 在你的终端的窗口

ipconfig /flushdns

在 Macos 上

dscacheutil -flushcache

在 linux 上

service nscd restart

或只是重新启动;)

Recently, I have seen this problem too. Below, you have my solution:

  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或修复它

在从 HTTPS 切换到 SSH (对于我的原点远程)之后,我刚刚收到了这个错误。要修复这个问题,我只需运行以下命令(对于每个回购) :

ssh -T git@github.com

在收到一个成功的响应后,我可以使用 ssh 获取/推送回购。

I took that command from Git's 测试 SSH 连接 guide, which is part of the greater 用 SSH 连接到 GitHub guide.

在我的例子中,我在使用 git remote add origin ...手动添加远程原点时拼错了一些内容。

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

Sometimes restarting your machine is also a good idea. When I faced the same issue after restarting the system, it told me that your private key is locked and github cant access that.. so enter your password to do that.. I entered the password and then the issue was resolved.

7美分

  1. 使用命令 ifconfig检查 ip 地址

    ens33: flags=****<UP,BROADCAST,RUNNING,MULTICAST>  mtu ****
    
    
    inet ***.***.***.***  netmask ***.***.***.0  broadcast ***.***.***.***
    
  2. add inet ip address and hostname in file /etc/hosts

    a. open file vi /etc/hosts

    b. add ip and host like ip_address hostname hostname

  3. reboot

It will attach ip and host.

这些都有帮助

  1. 使用 ssh 确认是否仍然连接。 Type this: ssh -T git@github.com

如果您得到的消息是您已经成功地进行了身份验证,并且 github 不支持 shell 访问,那么您可以再次尝试推送代码。

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

If you use Windows 10 and you are facing this error, try using ssh -T git@github.com to authenticate again to Github. It worked like charm for me.

您可以通过尝试连接到 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)"

    探员编号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,以便将其与计算机关联。

按照这个 链接了解详细信息

如果 ping github.com 给出以下错误: Ping: 无法解析 github.com: 未知主机

请稍等几分钟,然后再试一次。

I was having this exact issue and all that I had to do was to restart my desktop

我也有同样的问题,尝试了所有的方法,但都没用。

然后发现我的 VPN 开着。

如果您也有一个 VPN 打开尝试关闭您的 VPN 和重试。

I was using Cloudflare VPN.

I had the same output and turned out I had contradicting insteadof declarations in the .gitconfig (because I was working simultaneously on node and golang projects). You can manually delete the sections from the .gitconfig. Though I've created a script that cleans the url sections to be able to add the insteadof declarations on a cleaner config:

视窗(应另存为 .bat) :

@echo off


setlocal


for /f "usebackq tokens=* delims=" %%# in (`git config --get user.name`)  do (
set git_user=%%#
)


echo %git_user%


for /f "usebackq tokens=1,2 delims=] " %%a in (`findstr "[url " "%userprofile%\.gitconfig" ^|find /V "%git_user%:" 2^>nul`) do (
git config --global --remove-section url.%%b
)
endlocal


rem -- git config --global url.ssh://git@github.com/.insteadOf https://github.com/

重击:

#!/bin/bash


git_user=$(git config --get user.name)




git config --global -l | grep -v $git_user | grep url.| awk -F '.insteadof' '{print $1}' | while read -r url ; do
echo $url
git config --global --remove-section $url
done

这将是一个好主意 .gitconfig备份。

enter image description here

我有同样的问题,最近解决这个问题,你只需要做的是连接到稳定的互联网一旦你连接到稳定的互联网再次尝试

我通过 VS 代码使用“ WSL: Ubuntu”,关闭我的连接,然后重新启动。enter image description here

解决 给你故障的步骤

这种事在 SourceTree 上发生在我身上 In my case, something wrong with my pair public-private key. So I delete this pair(usually store on /Users/username/.ssh) and generate new one(also add SSH on github Settings-> SSH and GPG keys manually if needed)