git clone 失败 fatal: early EOF fa
2019-03-23 本文已影响5人
李轻舟
git clone提示:
fatal: early EOF
fatal: the remote end hung up unexpectedly
fatal: index-pack failed
error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
使用git clone 克隆远程库时,出现了上述错误,网上找了很长时间的解决方案,很多解答都是运行以下命令:
git config http.postBuffer 524288000
在 git bash
上运行上述代码后仍未解决问题,因为此命名的目的是增加缓存空间到500M,这是用于解决上传大小限制的问题,但并不能解决我们遇到的问题。
error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
查看了很多博客,最终确定,这个问题是:
SSL错误
因为服务器的SSL证书没有经过第三方机构的签署,所以才报错。
解决方案如下:
第一步,克隆远程仓库时,用env命令设置GIT_SSL_NO_VERIFY环境变量为”ture”,并同时调用正常的git clone命令。完整的命令如下:
env GIT_SSL_NO_VERIFY=true git clone https://<host_name/git/project.git
第二步,在克隆完毕的仓库中将http.sslVerify设置为”false”。完整的命令如下:
git config http.sslVerify "false"
点评:以上方法应该是Git处理可信任的SSL临时证书很好的方法,第一步使用env命令保证了忽略证书错误是单次行为,不会成为默认的设置。第二次,则把忽略证书错误的设置限定在特定的仓库,避免扩大该设置的适用范围而引起的潜在安全风险。
PS:百度错误信息得到的结果很奇怪,可能是因为错误信息长度的问题,查询到的结果都是解决文件大小限制的,后来仔细解读了一下错误信息才知道是证书的问题,查找问题之前一定要先做好准备工作。