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

成功会显示:

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

相关推荐
DevilSeagull20 小时前
MySQL(1) 安装与配置
java·数据库·git·mysql·http·开源·github
AC赳赳老秦20 小时前
OpenClaw与Notion联动:自动同步工作任务、整理笔记,实现高效管理
运维·人工智能·python·数学建模·自动化·deepseek·openclaw
上海云盾安全满满20 小时前
服务器带宽一直跑高,是什么情况
运维·服务器
.柒宇.21 小时前
信创实战:银河麒麟 V10 服务器安装、网络配置与 Docker 环境搭建
linux·运维·docker·国产信创·麒麟操作系统
云动课堂21 小时前
【运维实战】企业级SFTP 文件服务 · 一键自动化部署方案 (适配AnolisOS /openEuler /CentOS)
运维·centos·自动化
杨浦老苏21 小时前
Docker容器管理面板Dockhand
运维·docker·群晖
kefon21 小时前
从零搭一个 AI Agent:我选了最省钱的方案
开源·github·agent
diygwcom21 小时前
jeecg验证码在centos报错
linux·运维·centos
努力的搬砖人.21 小时前
配置 Docker 镜像加速器
运维·docker·容器
坚持就完事了21 小时前
Linux中的tar命令
linux·运维·服务器