Arch Linux执行git push时出现RPC failed SSL错误求助
我之前在Arch Linux上折腾Git推送时,刚好碰到过一模一样的SSL错误,先把你的问题信息贴出来方便参考:
错误提示:
error: RPC failed; curl 56 OpenSSL SSL_read: error:140943FC:SSL routines:ssl3_read_bytes:sslv3 alert bad record mac, errno 0推送过程日志:
Counting objects: 65, done. Delta compression using up to 4 threads. Compressing objects: 100% (56/56), done. Writing objects: 100% (65/65), 76.27 KiB | 1.00 MiB/s, done. Total 65 (delta 32), reused 0 (delta 0)
这个错误本质是SSL连接过程中出现了数据校验问题,在Arch Linux环境下可以按下面的步骤逐一排查解决:
1. 先关掉Git的SSL压缩(最常用的解决办法)
我当时就是靠这个搞定的,SSL压缩有时候会和某些服务器的SSL配置不兼容,直接禁用就行:
git config --global http.sslCompression false
执行完这个命令后,立刻再试一次git push origin master,大概率能成功。
2. 更新OpenSSL和Git到最新版本
Arch Linux的软件包迭代很快,旧版本的OpenSSL或者Git可能存在已知的SSL兼容性bug,更新一下准没错:
sudo pacman -Syu openssl git
更新完成后记得重启终端,确保新的包生效,然后再尝试推送。
3. 调大Git的HTTP推送缓存
虽然你的推送数据只有76KB,但有时候Git默认的HTTP缓存太小也会触发RPC错误,调大一点试试:
git config --global http.postBuffer 524288000
这个值是500MB,足够覆盖绝大多数推送场景了。
4. 临时改用HTTP协议推送(仅作临时 workaround)
如果上面的方法都不管用,可以暂时把远程仓库地址换成HTTP的,绕过SSL验证:
git remote set-url origin http://你的仓库地址.git
推送完成后一定要记得改回HTTPS,避免安全风险:
git remote set-url origin https://你的仓库地址.git
内容的提问来源于stack exchange,提问作者moro clash




