【Git】ssh: connect to host github. com port 22: Connection timed out 的解决方案

最近两周在用 TortoiseGit 从远端拉取项目,以及从本地向远端推送项目时,总会报如下错误
【Git】ssh: connect to host github. com port 22: Connection timed out 的解决方案_第1张图片
因为多尝试几次又可以拉取和推送了(使用 Git 客户端也是这样),以为是因为最近疫情的影响,大家都宅在家里,所以网速比较慢,就没把这当回事。

但公司的电脑一直没有这个问题,这让我觉得可能不是因为网速。果然,踏破铁鞋无觅处,今天终于把这个问题给解决了。

第一步
在自己公钥的路径下,新建一个 config 文件,注意没有后缀名(之前我并没有 config 文件,这个也是新建的,如果你之前就有,请无视这句话)。
【Git】ssh: connect to host github. com port 22: Connection timed out 的解决方案_第2张图片
然后打开该文件,输入如下内容,然后保存文件

Host github.com
User "这里填自己注册 github 时的邮箱地址"
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

第二步
打开 Git 客户端,输入 ssh -T [email protected] 命令来验证一下是否连接成功
在这里插入图片描述
如果你的也出现了这段话,恭喜你,你的问题也解决了。


以下属于扩展内容,感兴趣的可以看看

扩展一:
先对第一步 config 文件中的内容做下简单说明

名称 解释说明
Host github.com 服务器地址为 github 地址
Hostname ssh.github.com 服务器地址为 github 地址
PreferredAuthentications publickey 采用公匙
IdentityFile ~/.ssh/id_rsa 公匙文件路径
Port 443 修改端口为 443

扩展二:
关于第二步的 You’ve successfully authenticated, but GitHub does not provide shell access 这段话,我也查了一下资料

这段话翻译成中文是:您已成功通过身份验证,但是 GitHub 不提供 Shell 访问权限。

首先,这不是一个错误,而是 github 给的一句提示语,ssh -T 的意思是不显示终端,只显示连接成功信息。

虽然我们无法使用 ssh 协议直接登录 github,但当我们在使用 ssh 协议连接到自己或者其它服务器时,本地终端会显示命令提示符,我们可以在上面输入 ls 等命令进行操作,相当于在 github 服务器上建立了一个伪终端。


结束语

如果这篇博客有幸帮到了您,欢迎点击下方链接,和更多志同道合的伙伴一起交流,一起进步。

开发者俱乐部
在这里插入图片描述

你可能感兴趣的:(Git)