![](/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.