You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Arch Linux执行git push时出现RPC failed SSL错误求助

解决Arch Linux下Git Push时的SSL_read错误

我之前在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

火山引擎 最新活动