解决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 再试。
标签: ,