github拉取代码报错ssh: connect to host github.com port 22: Connection timed out

364 阅读1分钟

问题

拉取ssh报错,提示如下:

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

原因

参考下面:

有时,防火墙完全拒绝允许 SSH 连接。如果无法选择使用带有凭据缓存的 HTTPS 克隆,您可以尝试使用通过 HTTPS 端口建立的 SSH 连接进行克隆。大多数防火墙规则应该允许这样做,但代理服务器可能会干扰。

可能是公司的防火墙对22端口做了屏蔽导致。

解决

在windows电脑中,C盘用户下.ssh文件夹中增加一个config文件(注意无文件名后缀),添加如下的配置:

image.png

代码如下:

Host github.com
User git
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

Host gitlab.com
Hostname altssh.gitlab.com
User git
Port 443
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa

在terminal中,执行ssh -T git@github.com

再次拉取代码,会提示新的443端口验证身份,yes后验证成功即可拉取代码了。

You've successfully authenticated, but GitHub does not provide shell access.