gitlab.com SSH 连接超时

16
我尝试使用SSH让Gitlab工作,但不成功。
我已经完成了以下步骤:
1) 生成SSH密钥。
ssh-keygen -t rsa -C "myemail@myhoster.com" -b 4096

2) 在文件夹 /Users/myUserName/.ssh/ 中将密钥命名为 "id_rsa"

3) 通过复制密钥

pbcopy < ~/.ssh/id_rsa.pub

4) 将密钥插入GitLab

现在当我尝试克隆存储库时,我收到以下错误:

$ git clone git@gitlab.com:myName/repositoryName/ repoName
Cloning into 'repoName'...
ssh: connect to host gitlab.com port 22: Operation timed out
fatal: Could not read from remote repository.

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

出了什么问题?


尝试使用您自己的用户名 git clone myUsername@gitlab.com:myName/repositoryName/ repoName - Joao Vitorino
5个回答

18

我发现自己有同样的问题。

正如Adrian Dymorz所描述的那样,您可以使用以下命令检查是否可以通过SSH访问Gitlab:

ssh git@gitlab.com

你应该会收到这样的回复:

...
Welcome to GitLab, <Gitlab ID Account>!
Shared connection to altssh.gitlab.com closed.

如果不行,那么betarrabara应该解决您的问题但是您不应该提供您的id_rsa而是提供您的id_rsa.pub

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

它仍然会抛出: ue@DESKTOP-EVCRRVA /cygdrive/c/Users/ue/.ssh $ ssh git@gitlab.com 无法证实主机'[altssh.gitlab.com]:443 ([172.65.251.182]:443)'的真实性。 ECDSA 密钥指纹为 SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw。 是否继续连接 (yes/no/[fingerprint])? yes 警告:已将 '[altssh.gitlab.com]:443,[172.65.251.182]:443'(ECDSA)永久添加到已知主机列表中。 。 git@altssh.gitlab.com: 拒绝访问(publickey,keyboard-interactive)。 - Sudarshan

7
GitLab.com运行了第二个SSH服务器,它监听常用的443端口,这个端口不太可能被防火墙拦截。
你只需要编辑你的~/.ssh/config文件,更改连接GitLab.com的方式即可。
Host gitlab.com
 Hostname altssh.gitlab.com
 User git
 Port 443
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/id_rsa.pub

来源: https://about.gitlab.com/2016/02/18/gitlab-dot-com-now-supports-an-alternate-git-plus-ssh-port/

GitLab.com现在支持备用的Git+SSH端口,这个端口是2222。如果你使用的是一个网络环境不允许默认端口(22)的Git客户端,那么你可以通过这个备用端口连接到GitLab.com。注意,备用端口只支持Git+SSH协议。

你可以在这里了解如何修改你的配置文件:https://linuxize.com/post/using-the-ssh-config-file/。 - Premier Bromanov

5

我尝试了上述方法,但是在最后一行删除了“.pub”,因为它提示格式不正确。结果成功了。

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

3

您可以尝试:

ssh git@gitlab.com

这将打开一个连接,但会立即关闭。

如果出现超时错误,则可能是由于防火墙阻止了连接。在这种情况下,您应该添加一条允许连接的规则。


你能解释一下吗? - Because i hate myself

1
在我的情况下,我的EC2实例被重新启动并且IP地址发生了变化(由于重新启动),但我忘记在“.gitlab-ci.yml”文件中更新我的服务器IP。一旦我更新了正确的IP,流水线就成功了。
PS:我正在“Techworld with Nana”课程中练习一个用例。

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