GitHub推送又超时了?试试SSH

用 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
  1. 登录 GitHub → 右上角头像 → SettingsSSH and GPG keysNew SSH key

  2. 把复制的公钥粘贴到 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

    bash 复制代码
    eval "$(ssh-agent -s)"
    ssh-add --apple-use-keychain ~/.ssh/id_ed25519
  • Windows

    bash 复制代码
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519
第四步:测试连接

在终端运行:

bash 复制代码
ssh -T git@github.com

成功会显示:

现在就不用担心连接超时的问题了!

相关推荐
XZY0282 小时前
如何使用grpc
运维·服务器
rleS IONS2 小时前
SQL2000在win10上安装的方法
运维·服务器
zly35003 小时前
centos7 sshd无法启动
linux·运维·服务器
编程大师哥4 小时前
Linux 命名管道(FIFO)通信 超清晰讲解
linux·运维·服务器
Smile_2542204184 小时前
linux服务器清理磁盘
linux·运维·服务器
KivenMitnick4 小时前
Claude Code--Ubuntu Linux超详细配置教程(附每步的可能报错及解决方法)
linux·运维·ubuntu
JoyCong19984 小时前
OpenClaw实践玩法,简单三步搭建自动化工作流(附真香平替方案)
运维·人工智能·自动化