由于“curl 56 失败”,无法从远程克隆 Git 仓库?

3

我无法克隆代码库:

git clone https://github.com/OSVVM/OSVVM

Cloning into 'OSVVM'...
remote: Enumerating objects: 91, done.
remote: Counting objects: 100% (91/91), done.
remote: Compressing objects: 100% (63/63), done.
remote: Total 746 (delta 53), reused 66 (delta 28), pack-reused 655
Receiving objects: 100% (746/746), 18.04 MiB | 2.54 MiB/s, done.
error: RPC failed; curl 56 Failure when receiving data from the peer
Resolving deltas: 100% (402/402), done.

我该从哪里了解更多关于“RPC failed; curl 56 Failure when receiving data from the peer”这个错误的信息?


你使用的是哪个操作系统、操作系统版本和Git版本?你是否使用第三方防火墙或杀毒软件,或者在你的网络上有代理或MITM SSL设备? - bk2204
有代理,但它不能阻止其他文件的下载。是否有办法为 Git 指定安全证书? - gyuunyuu
如果您询问的是TLS客户端证书,那么是的。它们分别是http.sslCerthttp.sslKey - bk2204
3个回答

3

这很可能是由于您使用了代理的缘故。已知许多代理存在各种问题,特别是过滤代理,包括无法正确处理协议(包括 Git 广泛使用的分块传输编码),无法处理大负载、修改或篡改数据以及各种其他问题。其他一些事情可能能够运作,因为它们不太大,因为它们有已知的 Content-Length,或者因为数据流偶然没有包含某些坏单词或其他魔术模式;这并不意味着您的代理没有问题。

如果您使用 Windows 系统,请彻底卸载任何第三方防病毒软件或防火墙工具,并避免使用任何代理或 SSL/TLS 中间人设备,在必要时更换网络,然后问题可能会得到解决。如果您不能这样做,则应生成 SSH 密钥对并使用 SSH,因为大多数代理不会拦截它。

如果您在企业环境中,请向您的网络团队提供反馈,告诉他们他们的代理配置错误和有问题,以便他们可以修复它。


1
是的,这是一个常见的问题,影响了许多类似的环境,而Git恰好对篡改非常不耐烦(因为它使用密码学),并且非常擅长触发它。你远不是唯一遇到这类问题的人。 - bk2204
显然,如果我清除凭据管理器中Windows凭据下的所有内容,我就不会再遇到那个错误了。多么奇怪啊! - gyuunyuu

0

更新http post缓冲区的值并尝试

git config --global http.postBuffer 1048576000

http.postBuffer 影响向远程仓库的写入。我们在这里讨论的是克隆 - 它涉及从远程仓库读取大块内容。增加 postBuffer 在这里没有帮助。 - Adrian W

0

我可以通过在命令提示符中执行以下命令来解决相同的问题。

git config --global http.sslBackend openssl

这个问题时有时无,我甚至不确定为什么会发生。无论如何,在工作中,我无法可靠地访问Pypi。它只会偶尔工作,然后停止,我不得不每隔几周提交IT工单。我可以在Web浏览器上访问Pypi,但无法下载依赖项。最终,我首先在我的PC上使用pip下载了包和依赖项,将它们压缩并通过电子邮件发送到工作邮箱。然后将它们下载到工作机器上,并存储在公司的Bitbucket帐户中。这是唯一能够完成工作的方法。 - gyuunyuu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接