Skip to content

SSH 连接 GitHub 22 端口失败?改用 443 端口

用 SSH 方式 git clone / push 时报这类错:

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

原因通常是 22 端口被网络封锁。GitHub 官方提供了一个后备通道:通过 443 端口走 SSH。配置一次即可长期使用,比配代理简单得多。

一、先验证 443 端口能否连通

bash
ssh -T -p 443 git@ssh.github.com

如果返回:

text
Hi username! You've successfully authenticated, but GitHub does not provide shell access.

说明 443 通道可用,继续配置。

二、配置 SSH 走 443(一劳永逸)

编辑 SSH 配置文件:

  • Windows:C:\Users\你的用户名\.ssh\config
  • macOS / Linux:~/.ssh/config

加入:

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

保存后,像平常一样用 SSH 地址即可,无需改仓库地址:

bash
git clone git@github.com:user/repo.git

验证:

bash
ssh -T git@github.com
# 出现 "Hi username!" 即成功

三、没有 SSH key?先生成并添加

如果你还没配过 SSH key:

bash
# 1. 生成密钥(一路回车即可)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 2. 查看公钥内容
cat ~/.ssh/id_ed25519.pub

Windows PowerShell 查看公钥:

powershell
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

然后把公钥内容添加到 GitHub:Settings → SSH and GPG keys → New SSH key

四、还是连不上?

  • 确认走的是 SSH 而非 HTTPS:git remote -v 看地址是 git@ 开头还是 https://。HTTPS 卡住的话看 git clone 加速
  • 443 也被干扰:少数网络下 443 SSH 也不通,改走 代理 或改用 HTTPS + 代理。
  • 权限报错 Permission denied (publickey):是 key 没加对,重做第三步。

HTTPS vs SSH 走 443 对比

方式端口适合
HTTPS 直连443只读、偶尔用
HTTPS + 代理443全场景,但需代理
SSH 走 2222常被封,不推荐
SSH 走 443443需频繁 push、不想配代理(推荐)

小结

  • 22 端口不通,首选把 SSH 改到 443 端口,配置一次长期有效。
  • 这是 GitHub 官方支持的通道,稳定且合规。
  • 443 也不通时,再叠加 代理

本文仅供技术学习与研究,请遵守所在国家/地区法律法规。

本站为技术学习交流站点,与 GitHub, Inc. 无任何隶属或官方关系。所有内容仅供技术研究与学习,请遵守所在国家/地区的法律法规。