解决RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

如果git项目过大,或某个关联文件无法访问,会出现这个错误

RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54

解决方法

  • 网络上往往都会说这是由于大文件造成的提交或者拉取失败。但是,经过本人测试。如果 errno 56,那么应该是有大文件或者提交缓存方面的问题。而 errno 54 则不是这个问题。对于 56 错误的解决方式与网络上大部分文章的一致。都是增大缓存配置,比如下面就是配置提交缓存为 500M。
  • 对于 errno 54 这个错误,经尝试 http 或者 https 协议都无法正常提交。必须改为 ssh 方式来提交代码。也就是必须使用公私钥的方式进行账号验证,并提交代码。具体生成公私钥的方法,参见 github 帮助文档https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/同时找到 git config 当中的项目 url 配置项,改为 ssh 协议类型的项目地址。例如:url = git@github.com:xxx/xxx.git
  • 更换有效的代理的节点

一些建议,尝试一下,不保证有效

  1. 检测你的 git 版本是不是最新的。
  2. 你本身是否有这个项目的访问权限。
  3. 如果你开启了账户的双重验证、或者你准备 clone 的项目是一个开启了单点登录(SSO)的企业项目,那你必须要生成一个个人的 access token,而不能直接用密码访问。
  4. 如果你使用 ssh 来访问,你必须先生成 ssh key 公私钥匙对。
  5. 如你的目标项目的企业要求单点登录的,这个时候只能用 https 来访问,不能用 ssh.
  6. 根据我第一种解决办法,设置好缓存,并配置好 ssh 再试。