解决github提交代码端口报错的问题
2024-12-09 11:13:16

癞蛤蟆趴脚上,不咬人膈应人,这事能出问题,国内这个网络环境全责,这狗屎一样的网络环境真是一言难尽。

正文

今天写完博客,提交代码的时候正好遇到这个问题了。

1
connect to host github.com port 22: Connection refused

这里简单翻译一下。

1
ssh:连接到主机github.com端口22:连接超时

常规的做法无非就是挂加速器或一些梯子,但是好巧不巧,今天梯子到期了。

于是只能连夜翻CSDN,结果屎里淘金找了半个小时也没有几个靠谱的解法,好在掘金论坛翻到了一个不错的解决方案。

问题原因

出现这个问题,很可能是你的网络供应商(比如广电网)在出口防火墙上屏蔽了22端口(本地使用vpn等代理服务),这意味着你将无法访问其他主机的22端口。

github提供了一种解决方案,允许你使用443端口进行ssh连接

因为443端口是访问https网站所必须的,大部分防火墙都会允许通过,但如果使用代理服务器可能产生干扰。

解决流程

我这里使用gitbash命令行工具,不推荐使用powershell和cmd,因为win的权限和创建文件的命令太难背。

这里我的电脑是win11,默认大家存放的公钥的文件都在ssh文件夹下。

首先,我们切换到ssh文件夹下

1
cd ~/.ssh

然后,若是没有文件config,我们这里新建一个config文件

1
touch config

config文件需要手动添加如下内容

1
2
3
4
Host github.com
Hostname ssh.github.com
Port 443
User git

之后,继续在gitbash中,写入如下命令。

1
ssh -T -p 443 git@ssh.github.com

命令行在这里会提示你确定是不是要这么做,你选yes就行。

因为这是为了让每次ssh连接github都通过443端口,指明ssh连接git@github.comgit@ssh.github.com走443端口

最后,重新执行,检查是否成功

1
ssh -T git@github.com

如果命令行中有success等字样,那就代表修改成功了。

结语

这虽然是个简单的修改方式,但是没想到国内传统的技术论坛就没几个靠谱的解法。

为了防止下一次再次翻车,这里必须得写一下了。

参考

解决git push提交超时问题ssh: Connection timed out