用 SSH 彻底解决 GitHub 克隆/推送超时问题
每次使用本地ide连接GitHub时候,总是会超时,或者其它原因连不上,真的让人体验很差,天下苦秦久矣,今天用SSH来解决这个问题
在国内或网络环境复杂的地区,使用 GitHub 时经常遇到 HTTPS 超时 (如 Error in the HTTP2 framing layer)或 SSH 超时 (ssh: connect to host github.com port 22: Operation timed out)。
这些问题主要源于网络对端口 22 的限制、HTTP/2 兼容性问题或运营商干扰。切换到 SSH 并结合端口 443 是目前最稳定、最有效的解决方案。
SSH 不仅更安全,还能避免反复输入 Token,一次配置,长期受益。本文提供 Windows 和 macOS 完整的通用配置方法。
为什么推荐 SSH + 端口 443?
- 避开端口 22 被封锁的问题而且几乎所有网络都允许 443 端口
- 不再需要每次输入用户名/密码或 Personal Access Token
- 连接更稳定,适合大仓库克隆和频繁 push/pull
- 适用于 PyCharm、VS Code、IntelliJ 等 IDE
第一步:生成 SSH 密钥
打开终端:
bash
ssh-keygen -t ed25519 -C "你的邮箱@example.com"

pub是公钥
第二步:将公钥添加到 GitHub
-
登录 GitHub → 右上角头像 → Settings → SSH and GPG keys → New SSH key


-
把复制的公钥粘贴到 Key 框中,点击 Add SSH key
第三步:配置 SSH
创建或编辑 ~/.ssh/config 文件
打开 config 文件:
- macOS:
open -e ~/.ssh/config - Windows:
notepad ~/.ssh/config或用 VS Code 编辑
在文件中添加以下内容:
config
Host github.com
Hostname ssh.github.com
Port 443
User git
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60 # 保持连接活跃,防止超时
ServerAliveCountMax 5
TCPKeepAlive yes
说明 :
Hostname ssh.github.com+Port 443是绕过端口 22 超时的核心配置。GitHub 官方推荐此方式。
保存后,添加密钥到 ssh-agent:
-
macOS:
basheval "$(ssh-agent -s)" ssh-add --apple-use-keychain ~/.ssh/id_ed25519 -
Windows:
basheval "$(ssh-agent -s)" ssh-add ~/.ssh/id_ed25519
第四步:测试连接
在终端运行:
bash
ssh -T git@github.com
成功会显示:
现在就不用担心连接超时的问题了!