解决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 | Host github.com |
之后,继续在gitbash中,写入如下命令。
1 | ssh -T -p 443 git@ssh.github.com |
命令行在这里会提示你确定是不是要这么做,你选yes就行。
因为这是为了让每次ssh连接github都通过443端口,指明ssh连接git@github.com
或git@ssh.github.com
走443端口
最后,重新执行,检查是否成功
1 | ssh -T git@github.com |
如果命令行中有success等字样,那就代表修改成功了。
结语
这虽然是个简单的修改方式,但是没想到国内传统的技术论坛就没几个靠谱的解法。
为了防止下一次再次翻车,这里必须得写一下了。