执行ssh -T git@github.com连接GitHub耗时超2分钟,是什么原因导致?
可能的故障原因及排查方案:
- DNS解析效率低
本地运营商默认DNS对GitHub域名解析速度慢,甚至会返回不可用/高延迟的IP节点。可以更换公共DNS后重试,也可手动在系统hosts文件中绑定GitHub的可用IP,跳过DNS解析步骤。 - SSH默认GSSAPI认证拖慢流程
大部分类Unix系统的SSH默认开启GSSAPI认证,连接时会优先尝试该认证方式,超时失败后才会切换到公钥认证。可执行以下命令验证:ssh -T -o GSSAPIAuthentication=no git@github.com
如果速度恢复正常,可在~/.ssh/config文件中添加如下配置永久关闭该功能:Host * GSSAPIAuthentication no - 国际链路拥塞
运营商到GitHub的国际出口带宽不足、中间路由节点丢包率高都会导致访问延迟陡增。可使用mtr github.com命令检测链路的丢包和延迟情况,非高峰时段重试可验证是否为链路拥塞问题。 - 代理配置异常
若本地有使用代理,可能存在SSH未配置走代理导致直连延迟高,或者代理节点到GitHub的链路本身性能差的问题。可检查~/.ssh/config中的ProxyCommand相关规则,调整代理策略后重试。 - IPv6连接超时 fallback 导致耗时久
现在多数系统默认优先走IPv6网络,若本地IPv6链路到GitHub不通,会等待IPv6连接超时后才切换到IPv4,额外增加了等待时间。可执行强制走IPv4的命令验证:ssh -T -4 git@github.com
如果速度恢复正常,可在SSH配置中指定优先使用IPv4连接。
内容的提问来源于stack exchange,提问作者Varun Gawande
相关产品推荐
相关产品推荐

