ssh: connect to host github.com port 22: Connection timed out

2,187 阅读2分钟

 很多小伙伴在使用git的过程中,当进行本地仓库和远程仓库的通信相关操作时反复遇到一个报错信息“ssh: connect to host github.com port 22: Connection timed out“,看了很多解决教程还是没能解决问题,今天这篇文章将彻底搞清楚怎么回事。

报错出现原因 

其实对于这个22端口超时报错无非就是三个原因:

  • 网络连接不上
  • SSH秘钥配置错误
  • 22端口已占用

解决方法

网络连接不上

这种情况发生的概率其实比较的低,大家可以通过ping命令或者直接点开网页等等方式测试网络是否通畅和联通。

SSH秘钥配置错误

①如果还没有配置SSH秘钥的同学可以先生成SSH秘钥,然后将公钥配置到github上即可。

// 输入下面命令生成SSH秘钥,一路回车即可
ssh-keygen -t rsa -b 4096

②如果已经配置了就检查一下是否配置正确。看是否将公钥误删了等情况。

22端口已占用

如果上面两种原因均不能解决问题,那么问题应该是22端口被占用导致无法连接。

通常我们推荐把git的SSH默认访问端口从22改为443。通常是因为某些网络环境(例如公司或防火墙)可能封锁了 22 端口,但 443 端口(HTTPS 端口)通常是开放的。 

端口修改为443的方法如下:

# 编辑SSH配置文件(没有就创建,下面路径不要更改)
vim ~/.ssh/config|

# 在文件config中添加如下内容即可
Host github.com
  Hostname ssh.github.com
  Port 443
  User git

保存退出后,我们发现问题解决,可以正常进行通信了。

感谢大家的关注和点赞,你们的支持是我创作最大的动力!