使用Git推送代码至GitHub时遭遇SSL错误求助
Git推送GitHub时SSL错误的解决办法
问题重现
推送代码时反复出现如下错误:
Priya@DESKTOP-I2FML9S MINGW64 ~/OneDrive/Desktop/Client_Site (master) $ git push -u origin master Enumerating objects: 110, done. Counting objects: 100% (110/110), done. Delta compression using up to 2 threads Compressing objects: 100% (108/108), done. Writing objects: 100% (110/110), 1.11 MiB | 7.13 MiB/s, done. Total 110 (delta 9), reused 0 (delta 0), pack-reused 0 error: RPC failed; curl 56 OpenSSL SSL_read: OpenSSL/1.1.1t: error:140943FC:SSL routines:ssl3_read_bytes:sslv3 alert bad record mac, errno 0 send-pack: unexpected disconnect while reading sideband packet fatal: the remote end hung up unexpectedly Everything up-to-date
已尝试增大Git缓冲区(git config --global http.postBuffer 524288000)且网络状态稳定,但问题仍未解决。
可行解决方案
1. 切换SSH协议替代HTTPS
如果当前使用HTTPS远程地址,换成SSH协议规避SSL握手问题:
- 查看当前远程地址:
git remote -v - 替换为SSH格式地址:
git remote set-url origin git@github.com:你的用户名/仓库名.git - 确保本地已配置SSH密钥并添加至GitHub账户,再重新推送:
git push -u origin master
2. 临时禁用SSL验证(应急方案,不推荐长期使用)
临时关闭Git的SSL验证,推送完成后恢复:
- 禁用验证:
git config --global http.sslVerify false - 执行推送:
git push -u origin master - 恢复验证:
git config --global http.sslVerify true
3. 更新OpenSSL版本
错误提示关联OpenSSL 1.1.1t,尝试更新到最新稳定版:
- Windows环境下,卸载当前Git,重新下载安装最新版Git(自带更新后的OpenSSL组件)
- 安装时选择「Use the OpenSSL library」选项
4. 清理Git SSL会话缓存
本地缓存的SSL会话可能异常,清理后重试:
- 取消SSL会话缓存配置:
git config --global --unset http.sslSessionCache - 重新执行推送命令
5. 检查并取消代理设置
隐性代理可能干扰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 - 重新推送测试
内容的提问来源于stack exchange,提问作者Priyanshu kuntal
相关产品推荐
相关产品推荐

