簡體   English   中英

ssh:無法解析主機名 github.com:名稱或服務未知; 致命:遠端意外掛斷

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

設置 GitHub 帳戶的過程工作得很好,但是當我嘗試將我的存儲庫推送到 GitHub 時它不起作用。 它顯示的錯誤信息如下:

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

我嘗試更改 RSA 密鑰,但仍然出現錯誤。

是什么導致了這個錯誤?

最近,我也看到了這個問題。 下面,你有我的解決方案:

  1. ping github.com,如果 ping 失敗。 這是DNS錯誤。
  2. sudo vim /etc/resolv.conf,添加:nameserver 8.8.8.8 nameserver 8.8.4.4

或者它可能是一個真正的網絡問題。 使用sudo service network-manager restart重新啟動您的網絡管理器或修復它

從 HTTPS 切換到 SSH(對於我的原始遠程)后,我剛剛收到此錯誤。 為了解決這個問題,我簡單地運行了以下命令(對於每個 repo):

ssh -T git@github.com

在收到成功的響應后,我可以使用 ssh 獲取/推送到 repo。

我從 Git 的 測試 SSH 連接指南中獲取了該命令,該指南是使用 SSH 連接到 GitHub指南的一部分。

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

拉過 https 是可行的想法。

您可以按照本指南嘗試推送 https:https ://help.github.com/articles/using-ssh-over-the-https-port/

這只有在 https 不受影響時才有幫助。 您可以嘗試查看https://www.githubstatus.com/以查看 github 末尾是否有任何報告的問題。

如果 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

或者只是重新啟動;)

就我而言,我在使用git remote add origin ...手動添加遠程源時拼錯了一些東西。

值得用git remote -v檢查你的遙控器是否正確

每一個都可以幫助

  1. 確認您是否仍使用 ssh 連接。 輸入:ssh -T git@github.com

如果您收到消息說您已成功通過身份驗證並且 github 不支持 shell 訪問,那么您可以嘗試再次推送您的代碼。

2)創建一個新的ssh密鑰,將其添加到github並使用ssh -T git@github.com進行測試

如果您使用 Windows 10 並且遇到此錯誤,請嘗試使用ssh -T git@github.com再次向 Github 進行身份驗證。 它對我來說就像魅力一樣。

我遇到了這個確切的問題,我所要做的就是重新啟動我的桌面

有時重新啟動機器也是一個好主意。 當我在重啟系統后遇到同樣的問題時,它告訴我你的私鑰被鎖定了,github 無法訪問它..所以輸入你的密碼來做到這一點..我輸入了密碼然后問題就解決了。

您可以通過嘗試連接到 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 以將其與您的計算機相關聯。

點擊此鏈接了解詳情

在centos 7上

  1. 使用命令ifconfig檢查 IP 地址。 你會得到這樣的信息

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

    一個。 打開文件vi /etc/hosts

    灣。 添加 ip 和主機,如ip_address hostname hostname

  3. 重啟

它將附加ip和主機。

檢查您的互聯網連接。 對我來說,我的互聯網連接不穩定。 嘗試忘記您的 wifi 密碼並重新連接。

我遇到了同樣的問題,嘗試了所有方法都沒有奏效。

然后意識到我的VPN已打開。

如果您也打開了 VPN,請嘗試關閉您的 VPN 並重試。

我使用的是Cloudflare VPN

我有相同的 output 並且結果我在insteadof中有矛盾的而不是聲明(因為我同時在 node 和.gitconfig項目上工作)。 您可以從.gitconfig手動刪除這些部分。 盡管我創建了一個腳本來清理 url 部分,以便能夠在更干凈的配置上添加替代聲明:

對於 windows(應另存為.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/

bash:

#!/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是個好主意。

在此處輸入圖像描述

我最近遇到了同樣的問題來解決這個問題你只需要在連接到穩定的互聯網后連接到穩定的互聯網再試一次

如果 ping github.com 給出以下錯誤: ping: cannot resolve github.com: Unknown host

請等待幾分鍾,然后重試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM