远程Ubuntu 20.04服务器无法克隆/拉取/推送公司私有GitHub仓库
问题排查解决步骤
- 首先排查网络连通性与代理配置,你遇到的无报错卡住90%是网络链路问题而非凭证错误(凭证错误会直接返回403权限报错,不会长时间无响应):
- 执行
nc -zv github.com 443测试与GitHub 443端口的连通性,超时则说明服务器出口防火墙、路由策略或网络运营商层面限制了与GitHub的HTTPS连接 - 依次执行
git config --global --get http.proxy、git config --global --get https.proxy、env | grep -i proxy检查是否配置了无效代理,如果有残留代理配置,执行git config --global --unset http.proxy、git config --global --unset https.proxy清除
- 执行
- 清理无效的Git配置项:你当前
~/.gitconfig的user段中token、password属于无效配置,Git不会从该位置读取验证凭证,直接删除这两行避免干扰 - 清除残留的凭证缓存:
- 执行
git config --global credential.helper查看当前凭证存储方式 - 若返回
store,执行rm ~/.git-credentials删除存储的旧凭证 - 若返回
cache,执行git credential reject https://github.com清除缓存的旧凭证
- 执行
- 直接验证带凭证的访问逻辑:执行
git clone https://<你的PAT>@github.com/company/repo.git,将PAT直接拼接在URL中测试,如果仍卡顿可确认是网络层面问题,和Git凭证逻辑无关 - 替换协议临时规避:生成SSH密钥添加到你的GitHub账号后,使用SSH地址
git clone git@github.com:company/repo.git测试,SSH协议走22端口,不受HTTPS链路问题影响,可临时解决推拉代码需求 - 排查DNS与SSL问题:
- 执行
sudo systemd-resolve --flush-caches清空服务器DNS缓存,执行nslookup github.com检查解析的IP是否为正常GitHub节点,解析异常可修改/etc/resolv.conf添加公共DNSnameserver 8.8.8.8后重试 - 执行
curl -v -u <你的GitHub用户名>:<你的PAT> https://api.github.com/repos/company/repo测试API访问,如果curl也卡顿,完全确认是服务器到GitHub的HTTPS链路问题,联系服务器运维排查出口网络策略即可
- 执行
内容的提问来源于stack exchange,提问作者Yusuf gndz
相关产品推荐
相关产品推荐

