簡體   English   中英

ssh:連接到主機 github.com 端口 22:連接超時

[英]ssh: connect to host github.com port 22: Connection timed out

我在代理下,我成功地推入了 git 很長一段時間。
現在我不能突然推入 git。
我已經設置了 RSA 密鑰和代理並仔細檢查了它們,但沒有用,git 向我拋出頁面標題中顯示的錯誤。

對於我的情況,建議的解決方案都不起作用,所以我嘗試自己修復它並解決了它。

對我來說,我在我的 AWS EC2 UBUNTU 實例上遇到了這個錯誤,我解決它的方法是編輯 ssh 配置(或者如果它不存在則添加它)。

sudo nano ~/.ssh/config

我添加了以下內容

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

然后,運行命令ssh -T git@github.com以確認問題是否已解決。

據此

有時,防火牆完全拒絕允許 SSH 連接。 如果無法使用帶有憑證緩存的 HTTPS 克隆,您可以嘗試使用通過 HTTPS 端口建立的 SSH 連接進行克隆。 大多數防火牆規則應該允許這樣做,但代理服務器可能會干擾

希望這可以幫助遇到與我相同問題的其他人。

原因可能是您在網絡下修改了防火牆。(在這種情況下,他們可能會故意阻止某些端口)
仔細檢查這是否是原因......做

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

基本 URL 重寫

Git 提供了一種使用 git config 重寫 URL 的方法。 只需發出以下命令:

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

現在,就像變魔術一樣,所有 git 命令都會執行git://https://的替換

來源: git:// 協議被公司阻止,我該如何解決?

在 .ssh 文件夾中創建“config”文件

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

我遇到了同樣的問題,找不到有效的解決方案。 我在設置本地服務器時遇到了這個問題,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

最后,我發現這篇文章解決並暴露了真正的問題。

# 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 運行良好!

快速解決方法:嘗試切換到不同的網絡

我在使用熱點(3/4G 連接)時遇到了這個問題。 切換到不同的連接 (WiFi) 解決了它,但這只是一種解決方法 - 我沒有機會深入了解問題的根源,因此其他答案可能更有趣以確定潛在問題

對我來說,問題出在 ISP 方面。 Internet 服務提供商未啟用端口號。 所以要求他們通過我的網絡啟用端口號並開始工作。
僅用於測試:連接到移動熱點並輸入ssh -T git@bitbucket.org or git pull.
如果可行,請讓您的 ISP 啟用該端口。

執行:

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

我遇到了同樣的問題,但我找到的答案不同,認為有人可能會遇到這個問題,所以這是我的解決方案。

我必須將229418 443的 2 80 IP 列入白名單:

  • 192.30.252.0/22

  • 185.199.108.0/22

如果這些 IP 不起作用,可能是因為它們已更新,您可以在此頁面上找到最新的。

在與 Ludder 類似的故障模式中,當我還沒有登錄到正確的公司 VPN 時,我收到了這個錯誤。 :facepalm:

好的試試這個ssh -T -p 443 git@ssh.github.com而不是ssh -T git@github.com

上面的答案為我提供了解決此問題所需的信息。 在我的情況下,網址錯誤地以 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

如果您的 url 是正確的,那么下一步將是嘗試上面建議將協議更改為 http 的答案。

將 repo url 從 ssh 更改為 https 對我來說意義不大。 因為我更喜歡ssh而不是https ,因為我不想放棄一些額外的好處。 上面的答案非常好和准確。 如果您在 GitLab 中遇到此問題,請轉到他們的官方文檔頁面並像這樣更改您的配置文件。

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

重新啟動計算機為我解決了它。
Git版本: 2.27.0.windows.1
操作系統版本: Windows 10

主要原因是公司最近安裝的代理發生了變化,它阻止了除公司域之外的其他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進行驗證

就我而言,問題是由我前一天在路由器上更改的設置引起的。 所以在我的路由器上,我只需將設置恢復禁用,它就解決了我的問題。

在此處輸入圖像描述

我的電腦在連接到 Github 時無法連接端口 22。 我從來沒有遇到過bitbucket的這個問題。 如果您同時擁有 GitHub 和 bitbucket,那么

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


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

參考

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

這個答案基於@zundi 對主要問題的評論(應該歸功於誰,謝謝 zundi):

  • 在您的移動設備上創建一個熱點並連接到該熱點
  • git push
  • 關閉移動設備上的熱點並重新連接到原來的網絡
  • git push繼續工作

我不知道為什么臨時連接到熱點會神奇地“啟動”原始網絡連接。

當我不小心切換到訪客wifi 網絡時,我收到了這個錯誤。 不得不切換回我的默認wifi網絡。

我有這個問題 2 小時,結果是從 https 中刪除“s”,然后執行以下操作:

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

解決它。

ISSUE:產生問題的步驟:git clone git@github.com:sramachand71/test.git 首次在新筆記本電腦中錯誤ssh:連接到主機 github.com 端口 22:連接超時致命:無法從遠程讀取存儲庫。

請確保您具有正確的訪問權限並且存儲庫存在。 SOLUTION在系統中第一次克隆我們需要給克隆命令加上雙引號。 $ git clone "git@github.com:sramachand71/test.git" 我在系統中遇到了這個問題,即使一切都正確,但最后注意到雙引號對於第一次或新用戶的 url "repository_url.git" 是必須的在系統中。

我在使用常規 IP 和故障轉移 IP 設置的服務器上遇到了這個問題。 此時故障轉移 IP 未指向服務器。 我不得不從/etc/netplan/01-netcfg.yaml中的服務器配置中刪除故障轉移 IP。 將故障轉移 IP 指向該服務器可能也可以解決問題。

建議檢查互聯網連接或連接到另一個連接。

所以我遇到了同樣的問題(不是在代理后面)並且遇到了這個問題。 這是我為修復它所做的:

嘗試運行ssh -T git@github.com並確實超時,但添加-o KexAlgorithms=ecdh-sha2-nistp521建立了成功的連接(從this answer to a semi-related question中找到)。

為了永久解決這個問題,我剛剛在~/.ssh/configgithub.com下添加了一行KexAlgorithms=ecdh-sha2-nistp521 現在一切似乎都很好。

如果您在 Windows 中,請移至存儲 ssh 密鑰的目錄,然后重試,它對我有用。

為我解決的是在密鑰文件上執行ssh-add

ssh-add C:/Path/To/Key.pem

C:/用戶/用戶/.ssh/config:

Host sshapp
    Hostname ssh.github.com
    IdentityFile C:/Path/To/Key.pem
    Port 443

然后克隆使用:

>git clone git@sshapp:<git_user>/app.git
Cloning into 'app'...
The authenticity of host '[ssh.github.com]:443 ([140.82.121.35]:443)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6T.....vCOqU.

刷新我的 Internet 連接和終端的 git reload功能對我有用。

暫無
暫無

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

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