【Git 教程系列第 20 篇】ssh: connect to host github. com port 22: Connection timed out 的解决方案

这是【Git 教程系列第 20 篇】,如果觉得有用的话,欢迎关注专栏。

最近两周在用 TortoiseGit 从远端拉取项目,以及从本地向远端推送项目时,总会报如下错误
在这里插入图片描述
因为多尝试几次又可以拉取和推送了(使用 Git 客户端也是这样),以为是因为最近疫情的影响,大家都宅在家里,所以网速比较慢,就没把这当回事。

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

第一步
在自己公钥的路径下,新建一个 config 文件,注意没有后缀名(之前我并没有 config 文件,这个也是新建的,如果你之前就有,请无视这句话)。
在这里插入图片描述
然后打开该文件,输入如下内容,然后保存文件

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

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


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

扩展一:
先对第一步 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 服务器上建立了一个伪终端。

你的问题得到解决了吗?欢迎在评论区留言。

赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。


结束语

技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。

最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen Su

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值