无法向Github/Bitbucket推送Git代码,遇RPC及SSL错误求解决
解决Git Push时出现的SSL_ERROR_SYSCALL错误
这种SSL连接中断的问题我之前也碰到过,结合你clone和pull正常、换了Bitbucket依然报错的情况,大概率是本地Git的配置或网络层面的问题,试试下面这些分步排查的方法:
增大Git HTTP缓存缓冲区
有时候哪怕推送的内容很小,也可能因为Git默认的HTTP缓存限制触发连接中断,先把缓存调大:git config --global http.postBuffer 524288000这个值设置为500MB,足够覆盖大部分场景的推送需求。
临时禁用SSL验证(测试用)
如果是本地SSL证书信任问题导致的连接失败,可以先临时关闭SSL验证来测试:git config --global http.sslVerify false要是这样能成功推送,说明是证书信任的问题,后续可以重新导入对应平台的CA证书,或者检查系统的SSL证书存储是否正常。
检查并清理代理配置
代理服务经常会干扰Git的SSL连接,先查看当前是否设置了代理:git config --global --get http.proxy git config --global --get https.proxy如果有输出结果,先临时取消代理设置:
git config --global --unset http.proxy git config --global --unset https.proxy之后再尝试推送操作。
更新本地LibreSSL版本
错误日志里明确提到了LibreSSL SSL_read,旧版本的LibreSSL可能存在兼容性bug,更新到最新稳定版后再测试推送。切换到SSH协议推送
避开HTTP/HTTPS的SSL问题,改用SSH协议:- 先在Github或Bitbucket的账号设置里添加你的SSH公钥;
- 将远程仓库地址替换为SSH格式,比如把
https://github.com/your-username/your-repo.git改成git@github.com:your-username/your-repo.git; - 执行
git push再次尝试。
如果以上方法都没解决,建议检查本地防火墙、杀毒软件是否拦截了Git的网络请求——部分安全软件会误判Git的SSL连接并中断它。
内容的提问来源于stack exchange,提问作者Bazinga
相关产品推荐
相关产品推荐

