记录一次使用SSH连接Github失败的问题

2022年04月24日 230次浏览

今天push代码到github上的时候遇到了一个问题:

ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.      
                                                   
Please make sure you have the correct access rights
and the repository exists.   

image-20220423171907730.png

测试与 github 的连接也失败了

ssh -T git@github.com
ssh: connect to host github.com port 22: Connection timed out
原因在于使用 SSH 连接时 22 端口被阻塞了。

虽然我也不知道为什么

经过了一番查找终于在官网文档中找到了解决方案

首先测试是否可以在端口 443 上通过 SSH 连接到git@ssh.github.com,如果可以则覆盖 SSH 的设置强制与以 GitHub.com 的连接都通过该服务器运行。

输入一下命令测试

$ ssh -T -p 443 git@ssh.github.com
// 如果你也输出下面的提示,那么证明可以使用 443 端口
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.

接下来找到你的 .ssh文件夹 (一般都在你的用户目录下),在 .ssh 文件夹中新建一个文件 config (没有后缀名),然后再config文件中添加下面配置:

Host github.com
Hostname ssh.github.com
Port 443
User git

配置好了之后可以重新测试一下:

$ ssh -T git@github.com
> Hi username! You've successfully authenticated, but GitHub does not
> provide shell access.

测试通过,重新 push 成功