![](/img/trans.png)
[英]npm install error: ssh: connect to host github.com port 22: Connection timed out
[英]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
Git 提供了一種使用 git config 重寫 URL 的方法。 只需發出以下命令:
git config --global url."https://".insteadOf git://
現在,就像變魔術一樣,所有 git 命令都會執行git://
到https://
的替換
在 .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
我遇到了同樣的問題,但我找到的答案不同,認為有人可能會遇到這個問題,所以這是我的解決方案。
我必須將22
和9418
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連接。
我能夠按照以下步驟成功連接:
ssh -T git@github.com
它應該以超時結束。
ssh config --local -e
並從
url=git@github.com:asheeshjanghu/Journal.git
至
url=https://github.com/asheeshjanghu/Journal.git
重要的一點是,您必須在 url 中更改 2 個位置。
從git@
到https://
和從github:username
到github/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/config
的github.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.