ssh连接gitlab.com端口22失败:网络不可达。

13

我在尝试连接Gitlab服务器来在Ubuntu 20.10计算机中克隆一个仓库,但我总是收到以下消息:

ssh: connect to host gitlab.com port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

所以,我尝试运行命令ssh -T git@gitlab.com,但是收到了以下消息:

ssh: connect to host gitlab.com port 22: Network is unreachable

我尝试在另一台装有Ubuntu 20.04的计算机上运行,它可以正常工作。

有人能帮我解决这个问题吗?


2
你是否在一个阻止22端口流量的网络上? - Chad Baldwin
我已经在我的电脑上打开了22号端口。 - LuisFelipe
我也遇到了同样的问题。我已经避免使用HTTPS好几天了,但似乎这是我的唯一选择。 - Nafiu Lawal
我的工作连接要求我打开代理和各种疯狂的设置。使用手机作为热点并关闭代理使我成功连接。 - David
在我看来,你应该与网络管理员联系,与他们一起解决问题,而不是绕过他们。 - Phillip -Zyan K Lee- Stockmann
显示剩余2条评论
10个回答

8

我遇到了同样的问题。我通过ssh连接到远程机器(因为它位于公司内,所以打开VPN)。从远程机器上尝试git clone(ssh),却收到了以下错误信息:

git clone git@gitlab.com:<project-name>.git
Cloning into '<project-name>'...
ssh: connect to host gitlab.com port 22: Network is unreachable
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

以下解决方案有效。我将以下内容添加到远程机器的ssh-config中,其在此处进行了描述:https://about.gitlab.com/blog/2016/02/18/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port/
Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  PreferredAuthentications publickey
  IdentityFile ~/.ssh/gitlab

我现在可以轻松地通过GitLab克隆(使用ssh)项目,没有任何问题。


user 的位置填写你的git用户,在 IdentityFile 的位置填写 ~/.ssh/id_ed25519,这对我起到了作用。 - Cesar Romero

6

在工作环境中,我将无法使用任何公共Git仓库托管服务(如github.com、gitlab.com等)的SSH URL。

如果在其他服务上出现问题(ssh -Tv git@github.com),则您不允许使用SSH URL。请使用HTTPS URL。

但是,如果在同一网络上,另一个服务器可以正常工作,则请仔细检查特定计算机的防火墙规则。可能会阻止SSH,而另一个则没有。
ufw status verbose


我已经启用了ssh和22端口,但仍然没有改变。在github上它可以正常工作。 另一台计算机不在同一个网络上,很遗憾,而且gitlab的url也不同。为了检查网络,我尝试开启和关闭VPN,但都没有起作用。 - LuisFelipe
@LuisFelipe 所以你的机器可以通过SSH联系github,但不能联系gitlab.com? - VonC
基本上是的。但我需要两个,一个是我的工作存储库,另一个是用于个人和其他工作。 - LuisFelipe
在执行此答案中的命令并接受指纹问题后,我成功连接到了gitlab.com。 - Max J
@MaxJ 好的:SSH 在你的工作环境中没有被阻止(在我的环境中肯定被阻止了)。 - VonC
显示剩余3条评论

4

如果您目前无法使用ssh,您可以改用HTTPS:

git remote set-url origin <Clone HTTPS address>

3

我曾经通过SSH(使用WSL2的Ubuntu)快乐地推送和拉取到我的(私有的)gitlab仓库,直到这个错误出现。尝试谷歌这个错误约5分钟后,它就又开始正常工作了!

如果您已成功进行了推送/拉取/克隆,并且确定不是防火墙问题,您可能只需要去冲杯咖啡,然后再尝试一次,而不是在stackoverflow上浪费数小时时间!


2

可能有以下几个原因:

1.) 您所在的网络阻止了对22端口的流量。尝试从其他网络或设备测试您的连接是最快速的方法。

2.) 您的droplet上的ssh服务未运行。

解决方案:

  1. 您可以在文件/etc/ssh/sshd_conf中更改ssh服务侦听的端口,或者使用其他网络来测试此问题的解决方案。
  2. 重新配置您的SSH密钥。

2

我已经找到解决方法了,我一直尝试连接的服务器需要使用代理,这解决了问题。但我希望这能对其他人有所帮助。


2

经过数天的搜索和多次删除.ssh文件并重新设置,我发现问题出在网络上,某些网站被阻止访问,所以我在网络提供商的安全筛选器中取消了"地址隐藏"或"黑客攻击"等筛选。

然后git clonepush就像往常一样工作了。


0
我遇到了同样的问题,原因是使用了一个访客wifi网络。更换成普通网络后,问题解决了。

这并没有真正回答问题。如果你有其他问题,你可以点击提问来提问。如果你想在这个问题有新的回答时收到通知,你可以关注这个问题。一旦你有足够的声望,你也可以设置悬赏来吸引更多的关注。- 来自评论 - undefined

0

我遇到了同样的问题,无法通过Windows PowerShell终端连接到GitLab。 解决方案是使用VScode编辑器中内置的扩展程序通过HTTPS访问GitLab。


0
我把SSH地址改成了HTTPS,解决了我的问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接