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

成功会显示:

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

相关推荐
峥无6 小时前
Linux进程信号:从基础概念到内核底层原理
linux·运维·服务器·信号处理
北山有鸟6 小时前
用开发板的.config替换ubuntu中内核源码目录的.config
linux·运维·ubuntu
qq_452396237 小时前
第二十篇:《Docker 故障排查常用命令与技巧》
运维·docker·容器
jcbut7 小时前
离线安装dify 1.7
linux·运维·dify
云计算磊哥@7 小时前
运维开发宝典024-Linux云计算运维入门阶段总结
linux·运维·运维开发
周小码8 小时前
10分钟搭建私有Git服务器:Soft Serve实战
运维·服务器·git
The Open Group8 小时前
从项目到产品:数字化转型为何进入“产品时代”?
运维
Urbano8 小时前
休闲束脚裤全生产工艺科普:从裁片到成衣,缝纫工序与自动化设备选型详解
运维·自动化
萤丰信息8 小时前
AI 重构园区运维|全场景无人化智慧运维:破解传统物业高成本痛点
运维·人工智能·重构
AI创界者9 小时前
运维进阶:如何使用 Medusa 进行企业内部服务器密码合规性审计?
运维·服务器