SSH克隆Gitlab连接到主机HOSTNAME端口22:连接超时

问题描述

我目前正在尝试将一个仓库从Gitlabs克隆到我的Google虚拟机。 我通过SSH进入我的VM,然后尝试通过SSH克隆Gitlab存储库。 我收到以下错误:

git clone git@domain:name/project.git
Cloning into 'project'...
ssh: connect to host domain port 22: Connection timed out
fatal: Could not read from remote repository.

我已将我的公共ssh密钥复制到gitlabs.com/profile/keys。我不确定在不识别凭据的情况下是否会产生连接超时。凭据是正确的。

我最初的想法是,虚拟机使用端口22进行克隆,而我也使用22 ssh进入虚拟机,因此该端口正在使用中且未在监听。我认为在vm上运行以下命令所产生的这些结果表明:

sudo lsof -i:22 ## see a specific port such as 22 ##
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd      482 root    3u  IPv4  13498      0t0  TCP *:ssh (LISTEN)
sshd      482 root    4u  IPv6  13509      0t0  TCP *:ssh (LISTEN)
sshd    15101 root    3u  IPv4  88752      0t0  TCP vm-csc362.c.databasesystems-287719.internal:ssh->externalip:20470 (ESTABLISHED)
sshd    15119 ming    3u  IPv4  88752      0t0  TCP vm-csc362.c.databasesystems-287719.internal:ssh->externalip:20470 (ESTABLISHED)

这说明已建立。 https://stackoverflow.com/questions/988424/lsof-connection-established#:~:text=lsof%20%2Di%20only%20shows%20you,or%20still%20attempting%20to%20authenticate.&text=The%20'ESTABLISHED'%20means%20the%20TCP,sees%20any%20data%20at%20alllsof -i仅显示活动的tcp连接。因此,它不会告诉您是否已登录或仍在尝试进行身份验证。 ESTABLISHED表示已建立TCP连接,即已在TCP / IP级别上执行了握手。在ssh进程完全看不到任何数据之前,这是必需的。

我最终将端口更改为2222(尽管在端口2222上运行上述命令并重新启动服务并更新防火墙以允许该端口时,似乎没有检测到该端口),所以我将它们改了回去。 ssh还会根据这些结果在端口22上进行侦听。我认为我以前认为端口被阻塞是错误的。

会不会碰巧知道发生了什么事?

我阅读了这篇帖子,其中讨论了可能发生的情况:https://unix.stackexchange.com/questions/229431/why-are-all-my-ssh-attempts-failing-due-to-timeout。 您正在该计算机上运行SSH服务器,并且该服务器确实使用了您尝试连接的端口,但是该计算机具有不允许您连接的防火墙。您需要弄清楚如何更改防火墙,或者可能需要从其他主机进行SSH允许进入。

关于防火墙的说明,我尝试过这些以允许端口:

sudo ufw allow 2222/tcp
sudo ufw allow 22/tcp

我很确定已经允许使用22,但是我不是专家,所以我做到了。

我没有成功。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)