解决GitHub端口22操作连接超时问题

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

问题描述

最近在使用 GitHub 提交拉取代码的时候,总是提示如下错误(换了网络环境也不行):

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

查看了下本地关联的远程仓库信息:

1
2
3
$ git remote -v
origin  git@github.com:junlongzzz/appfork-repo.git (fetch)
origin  git@github.com:junlongzzz/appfork-repo.git (push)

发现是使用的 SSH 方式连接到远端的 GitHub 仓库进行相关的操作,默认就是使用的 22 端口,最近可能由于网络限制或其他原因导致 SSH 连接失败的问题。

解决方法

方案一

既然 SSH 方式的端口连接失败,那么直接使用 HTTPS 方式关联远端仓库的方式,即将远端仓库地址做修改:

1
git remote set-url origin https://github.com/junlongzzz/appfork-repo.git

方案二(推荐)

~/.ssh/config 文件内加入如下配置,没有该文件就去新建一个即可:

1
2
3
4
5
6
Host github.com
    User git
    HostName ssh.github.com
    Port 443
    PreferredAuthentications publickey
    IdentityFile ~/.ssh/id_rsa

这将自动使用 ssh.github.com443 端口进行连接操作,然后使用如下命令测试连接:

1
ssh -T git@github.com

按照提示保存指纹后提示成功就代表配置生效了,目前没有网络限制等问题就可以正常使用啦!

当然该配置文件内还可以配置不同的 SSH 私钥文件区分不同的身份,这是另外的操作了,感兴趣大家可以去尝试下~

Written in ❤
使用 Hugo 构建
主题 StackJimmy 设计