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

简介

今天 git pushgit clone 到 github 中总是报:ssh: connect to host github.com port 22: Connection timed out

找了很久,比如更换为 HTTPS 或 HTTP、重新添加 ssh 文件信息、重新生成 ssh信息,还有什么在 host 文件C:\Windows\System32\drivers\etc\hosts中手动配置GitHub域名映射,在文件末尾处增加一行 140.82.113.4 github.com等。

最终明白问题是 22 端口被占用,需要重新建 config 文件来新指定端口,博客:https://blog.csdn.net/qq_46123200/article/details/134392486

我这里把最终的操作写出来,后面自己遇到了方便查找。

解决办法

本博客引用的是【fruge】博客的内容,相应博客地址:https://blog.csdn.net/qq_46123200/article/details/134392486。

最终方法:

在文件目录: C:\Users\26589\.ssh 新建 config 文件。

起初创建可以为 config.txt 文件,当把下面的内容复制好后,保存退出,修改文件名,删掉后缀.txt

这里是将 github 和 gitlab 的连接端口均改为了 443 端口。

~/.ssh/id_rsa 是你自己的文件路径

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

若设置有效,测试通过如下:输入ssh -T git@github.com

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

最后别忘记去 ~/.ssh/id_rsa.pub 中把内容粘贴到 gitee 和 github 的 ssh 中。

新生成 ssh

输入:ssh-keygen -t rsa -C "3xxxx73@qq.com" 其中的 “3xxxx73@qq.com“ 是你在 gitee 或 github 中的邮箱。之后一直回车(Enter)即可。

检测:ssh -v git@github.comssh -v git@gitee.com,只要有 successfully 字样就表示成功了。

如果报:ssh: connect to host github.com port 22: Connection timed out 就是上面的解决方案了。