推送Android项目至GitHub时遇RPC及SSL错误求助
我之前帮好几个开发者搞定过一模一样的问题,这种带LibreSSL SSL_read错误的RPC推送失败,大多和连接稳定性、Git的SSL配置或者旧版本兼容有关,咱们一步步来排查解决:
1. 增大Git HTTP推送缓存
Android项目通常包含不少大文件(比如aar、apk或者build缓存),默认的HTTP缓存太小很容易触发推送中断,先调大缓存:
- 执行命令:
git config --global http.postBuffer 524288000
这个命令把缓存设置为500MB,足够覆盖绝大多数Android项目的推送需求。
2. 强制Git使用TLS 1.2
错误日志里明确提到了SSL3,现在GitHub已经不再支持旧版SSL协议,咱们强制Git用更安全兼容的TLS 1.2:
- 运行命令:
git config --global http.sslVersion tlsv1.2
3. 重置SSL证书配置
有时候本地的SSL证书缓存或者配置出问题会导致握手失败,试试重置:
- 先清除当前的SSL证书配置:
git config --global --unset http.sslCAInfo - 如果是Mac/Linux系统,可以指定系统默认的SSL证书路径:
git config --global http.sslCAInfo /usr/local/etc/openssl/cert.pem - Windows用户可以用Git自带的证书:
git config --global http.sslCAInfo "C:\Program Files\Git\mingw64\ssl\certs\ca-bundle.crt"
4. 切换到SSH推送协议
如果HTTPS的SSL问题始终绕不开,换成SSH协议往往能直接解决:
- 先在GitHub账号的SSH设置里添加你的本地SSH公钥
- 然后修改远程仓库地址为SSH格式:
git remote set-url origin git@github.com:你的用户名/你的仓库名.git
5. 检查网络环境
有时候是网络不稳定或者代理/防火墙拦截了SSL连接:
- 试试切换到稳定的WiFi或者手机热点
- 如果用了代理,先关闭代理再尝试推送
6. 更新Git到最新版本
旧版本的Git可能存在LibreSSL的兼容性bug,更新到最新版通常能解决不少潜在问题:
- 去Git官网下载对应系统的最新安装包更新就行
附上你遇到的错误日志,方便其他开发者参考:
Failed with error: RPC failed; curl 56 LibreSSL SSL_read: error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac, errno 0 The remote end hung up unexpectedly The remote end hung up unexpectedly
Github Push failed: Failed with error: RPC failed; curl 56 LibreSSL SSL_read: error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3
内容的提问来源于stack exchange,提问作者Yash Verma

