概要:在这篇记录中,我们将探讨在使用ssh关联自己账户后,连接失败问题。执行”ssh -T git@github.com” 命令出现ssh: connect to host github.com port 22: Connection timed out报错的解决方案。

重新绑定ssh

我们先排除其他因素,确定的ssh密钥是正确绑定到你的github账户的:

所以得删除旧的:

1
2
3
cd ~/.ssh
ls
rm id_rsa id_rsa.pub

生成并复制新的密钥到你是github上:

1
2
ssh-keygen -t rsa -C "1592193136@qq.com"
cat ~/.ssh/id_rsa.pub

测试连接:

1
ssh -T git@github.com

如果出现和我上面一样报错的话,那么我们进入下一步吧。

更换端口以解决问题

这个问题的原因是网络或防火墙限制了你访问GitHub的22端口,github默认开放的就是22端口,所以我们需要通过在.ssh下添加配置文件将22端口改为443端口。

先进入,并新建config文件

1
2
cd ~/.ssh
vim config

然后将下面的内容复制进去:

1
2
3
4
5
6
Host github.com
User 注册github的邮箱
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Port 443

在英文状态下输入:wq 推出vim编辑。简单来说就是配置了邮箱地址,私钥文件的路径,端口号。

然后在用ssh -T git@github.com试试吧。

其他方案

如果更换端口号也不行的话,可以试试刷新本地DNS缓存,可能是DNS解析出问题了:

1
ipconfig /flushdns

清除了DNS解析还不行的话,我们有用clash的小伙伴,可以打开TUN模式,因为git 会走自己的代理配置。

还不行,那何必执着于ssh,换https连接吧:

1
git remote set-url origin 远程仓库地址