You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git远程命令(pull/push)突然变慢的排查求助

Git SSH连接GitHub缓慢问题排查分析

日志解读核心要点

从git pull跟踪日志和ssh -Tvvv git@github.com调试输出中,重点锁定以下耗时节点:

  • DNS解析环节:如果日志中debug1: resolve hostname github.com后出现长时间停顿,说明DNS解析存在延迟
  • SSH握手阶段:
    • 密钥协商:若debug1: Offering public key后等待过久,大概率是本地密钥加载缓慢,或是GitHub端密钥验证队列阻塞
    • 算法协商:卡在debug1: kex_exchange_identification阶段时,多为SSH协议版本/算法不匹配,或本地客户端与GitHub服务器的算法协商耗时过长
  • TCP连接环节:若debug1: Connecting to github.com [IP地址] port 22后停顿,结合你排除网络问题的前提,重点排查SSH上层逻辑即可

可能的耗时原因

  • 本地SSH配置冗余:~/.ssh/config中存在过多无效Host条目、冗余密钥路径,导致SSH客户端遍历密钥时耗时增加
  • 密钥类型兼容性:使用了GitHub优先级较低的密钥类型(如DSA),或本地同时加载多个密钥,SSH逐个尝试验证引发延迟
  • MacOS系统SSH服务异常:M1芯片的MacOS 15.1.1可能存在SSH客户端与系统框架的兼容性问题,比如Apple Git依赖的系统密钥链访问缓慢
  • GitHub IP路由问题:虽你排除了网络问题,但部分GitHub IP段可能在你的环境下路由绕远,导致TCP握手后SSH交互延迟

进一步测试/排查方法

  • 简化SSH配置:
    1. 备份~/.ssh/config后清空内容,仅保留GitHub相关配置:
      Host github.com
          HostName github.com
          User git
          IdentityFile ~/.ssh/你的常用密钥文件名
          IdentitiesOnly yes
      
    2. 执行ssh -Tvvv git@github.com对比耗时变化
  • 测试推荐密钥类型:
    • 生成GitHub推荐的ED25519类型密钥:ssh-keygen -t ed25519 -C "你的邮箱"
    • 将新密钥添加到GitHub账户,指定该密钥连接测试:ssh -i ~/.ssh/id_ed25519 -T git@github.com,观察是否提速
  • 绕过系统密钥链:
    • 临时禁用SSH对密钥链的访问:export SSH_AUTH_SOCK="",再执行git pull或ssh -T git@github.com,如果速度恢复,说明密钥链访问是瓶颈
  • 切换SSH端口测试:
    • 部分环境下22端口被限流,尝试改用443端口连接:
      修改~/.ssh/config:
      Host github.com
           HostName ssh.github.com
           Port 443
           User git
           IdentityFile ~/.ssh/你的密钥文件
      
      再测试连接速度
  • 替换SSH客户端:
    • 当前使用的是Apple自带Git配套的系统SSH,尝试安装独立OpenSSH:brew install openssh,用/usr/local/bin/ssh -T git@github.com测试,对比速度差异

内容的提问来源于stack exchange,提问作者Niels Kristian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 17:02:38