🔐 SSH over 443 配置详解

网络穿透

配置时间:2026-04-01

💡 为什么需要 SSH over 443?

某些网络环境(如企业防火墙、校园网、新疆等地区)会封锁 SSH 默认端口 22,导致 git push 失败。使用 443 端口(HTTPS 标准端口)可以绕过封锁。

⚙️ 配置步骤

1. 编辑 SSH 配置文件

文件路径:C:\Users\用户名\.ssh\config

如果 .ssh 文件夹或 config 文件不存在,请手动创建:

# 确保文件夹存在
mkdir C:\Users\用户名\.ssh

# 用记事本创建 config 文件
notepad C:\Users\用户名\.ssh\config

配置内容:

Host github.com
  HostName ssh.github.com
  Port 443
  User git
  IdentityFile C:\Users\用户名\.ssh\id_ed25519
  TCPKeepAlive yes
  ConnectTimeout 10

2. 修复私钥文件权限(Windows 专用)

Windows 下私钥文件权限过宽会导致 SSH 拒绝使用:

icacls "C:\Users\用户名\.ssh\id_ed25519" /inheritance:r /grant "用户名:(R,W)"

说明:

3. 测试连接

ssh -o StrictHostKeyChecking=no -T -p 443 git@ssh.github.com

预期输出:

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

如果看到以上信息,说明 443 端口连接成功!

🔍 故障排查

测试 443 端口连通性

Test-NetConnection -ComputerName ssh.github.com -Port 443

预期: TcpTestSucceeded : True

如果 False: 当前网络 443 也被屏蔽,需使用手机热点或代理。

查看 SSH 调试日志

ssh -vvv -p 443 git@ssh.github.com

⚡ Git 操作示例

标准推送(使用配置的 443 端口)

git push origin main

注意: 无需在命令中指定端口,SSH config 会自动处理。

临时使用 HTTPS(绕过 SSH 配置问题)

git remote set-url origin https://github.com/用户名/仓库名.git
git push origin main

提示: HTTPS 方式会要求输入账号密码(或 Personal Access Token)。

📊 适用场景对比

场景 推荐方式 优点 缺点
网络正常 SSH 端口 22 最快、最稳定 某些环境被墙
企业/校园网 SSH over 443 绕过防火墙 速度稍慢
新疆/严格屏蔽 HTTPS + 代理 最可靠 需配置代理

⚠️ 注意事项


记录日期:2026-04-07 | 整理人:小龙女-CEO