git错误整理——Git error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

错误1:Git: fatal: The remote end hung up unexpectedly

解决办法:

git config --global http.postBuffer 1048576000
git config --global http.postBuffer 1048576000

错误2:Git error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

错误信息

Total 116323 (delta 81906), reused 116320 (delta 81905)
POST git-receive-pack (130907163 bytes)
error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

git 在 pull 或者 push 一个大项目时,可能会碰到出现如题所示的错误。

解决办法:

网络上往往都会说这是由于大文件造成的提交或者拉取失败。但是,经过本人测试,如果是 errno 56,那么应该是有大文件或者提交缓存方面的问题。而 errno 54 则不是这个问题。对于 56 错误的解决方式与网络上大部分文章的一致。都是增大缓存配置,比如下面就是配置提交缓存为 500M。

git config http.postBuffer 524288000
git config https.postBuffer 524288000

对于 errno 54 这个错误,经尝试 http 或者 https 协议都无法正常提交。必须改为 ssh 方式来提交代码。也就是必须使用公私钥的方式进行账号验证,并提交代码。

Git配置SSH Key请参考 Git配置SSH Key

转自:Git常见错误整理

<think>好的,用户遇到了一个Git克隆或拉取时的SSL错误:“unable to access 'https://github.com/google/guava.git/': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0”。我需要仔细分析这个问题可能的原因和解决方案。 首先,这个错误通常与网络连接、SSL配置或Git本身的问题有关。我应该从最常见的可能开始排查。 第一步,考虑网络连接是否稳定。用户可能处于网络受限的环境,比如公司防火墙或代理,这可能导致连接中断。建议用户检查网络连接,尝试ping github.com看看是否可达。如果不行,可能需要配置代理或者更换网络环境。 其次,SSL证书的问题。可能用户的系统时间不正确,导致SSL证书验证失败。需要检查系统时间是否正确,时区设置是否合理。另外,Git使用的SSL证书可能过期或损坏,可以尝试更新证书,比如在Ubuntu上运行更新命令。 接下来,考虑是否Git的缓存问题。有时候,Git的缓存可能出现错误,清除缓存或重新初始化仓库可能有效。可以建议用户执行git config --global --unset http.proxy和git config --global --unset https.proxy来排除代理配置的问题。 如果以上方法无效,可能需要调整GitSSL验证设置。临时关闭SSL验证(git config --global http.sslVerify false)可以测试是否是证书问题,但要注意安全风险,测试后应恢复设置。 另外,使用SSH协议代替HTTPS也是一个可行的解决方案。生成SSH密钥并添加到GitHub账户,然后使用SSH URL克隆仓库。这可以绕过HTTPS可能遇到的SSL问题。 还要考虑Git客户端版本是否过旧,升级到最新版本可能修复已知的SSL问题。同时,检查是否有安全软件或防火墙干扰Git的连接,暂时禁用这些软件进行测试。 最后,如果所有方法都无效,可能需要深入查看详细的错误日志,使用GIT_CURL_VERBOSE=1GIT_TRACE=1环境变量来获取更多调试信息,帮助定位具体原因。 需要将这些步骤有条理地整理出来,确保用户能够逐步排查问题。同时,注意提醒用户临时关闭SSL验证的风险,以及使用SSH协议的优势。保持回答的清晰和实用,帮助用户有效解决问题。</think>你遇到的 `OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 0` 错误通常是 Git 通过 HTTPS 协议与远程仓库通信时出现的网络或 SSL 相关的问题。以下是常见原因和解决方法: --- ### **1. 网络连接问题** - **现象**:网络不稳定、代理设置错误、防火墙限制。 - **解决方法**: - 检查网络是否正常,尝试 `ping github.com` 查看是否可达。 - 如果使用代理,确保 Git 已正确配置代理: ```bash # 设置代理(根据实际代理地址和端口修改) git config --global http.proxy http://proxy.example.com:8080 git config --global https.proxy https://proxy.example.com:8080 # 取消代理(如果不需要代理) git config --global --unset http.proxy git config --global --unset https.proxy ``` --- ### **2. SSL 证书问题** - **现象**:系统 SSL 证书过期或配置错误。 - **解决方法**: - **更新系统证书**(以 Ubuntu 为例): ```bash sudo apt-get update sudo apt-get install --reinstall ca-certificates ``` - **检查系统时间**:SSL 依赖系统时间,确保时间准确: ```bash date # 检查时间是否正确 ``` --- ### **3. 更换 Git 协议(HTTPS → SSH)** 如果 HTTPS 协议存在问题,可改用 SSH 协议: 1. **生成 SSH 密钥**(如果已有可跳过): ```bash ssh-keygen -t ed25519 -C "your_email@example.com" ``` 2. **将公钥添加到 GitHub**: - 复制 `~/.ssh/id_ed25519.pub` 内容。 - 打开 GitHub → Settings → SSH and GPG keys → 添加新 SSH Key。 3. **使用 SSH 克隆仓库**: ```bash git clone git@github.com:google/guava.git ``` --- ### **4. 调整 GitSSL 验证(临时)** 如果问题依然存在,可尝试临时关闭 SSL 验证(**注意:此操作不安全,仅用于调试**): ```bash git config --global http.sslVerify false # 执行完 Git 操作后,恢复默认设置: git config --global http.sslVerify true ``` --- ### **5. 其他排查手段** - **清除 Git 缓存**: ```bash git rm -r --cached . git reset --hard ``` - **升级 Git 版本**:旧版本可能存在已知 Bug。 - **使用调试模式**: ```bash GIT_CURL_VERBOSE=1 GIT_TRACE=1 git clone https://github.com/google/guava.git ``` --- ### **总结步骤** 1. 检查网络和代理。 2. 更新系统证书和校验时间。 3. 尝试 SSH 协议。 4. 临时关闭 SSL 验证(仅调试)。 5. 升级 Git 或使用调试模式定位问题。 如果问题仍未解决,请提供完整的终端输出(可隐藏敏感信息),以便进一步分析。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值