fatal: the remote end hung up unexpectedly (curl 56 OpenSSL SSL_read:SSL_ERROR_sysCALL)
阿新 • • 發佈:2019-01-30
出現類似上述錯誤,網上找到的大量解決方案如下:
git config http.postBuffer 524288000
- 1
- 2
在git bash上執行上述程式碼就可以,目的是增加快取空間到500M.
其實兩種錯誤最後都是失敗,但提示是不同的:
Counting objects: 56, done. Delta compression using up to 2 threads. Compressing objects: 100% (29/29), done. Writing objects: 100% (29/29), 67.82 KiB | 0 bytes/s, done. Total 29 (delta 20), reused 0 (delta 0)
- 1
- 2
- 3
- 4
- 5
- 6
error: RPC failed; result=55, HTTP code = 200
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
- 1
- 2
- 3
- 4
如果是上面的錯誤提示,就可以使用上述方法解決(原則上是這樣,也有可能有其他錯誤,你懂的),但另一種情況是,紅字的部分被類似如下的錯誤提示代替:
curl 56 OpenSSL SSL_read:SSL_ERROR_sysCALL
- 1
- 2
這就是:
SSL錯誤
因為伺服器的SSL證書沒有經過第三方機構的簽署,所以才報錯。解決方案如下:
第一步,克隆遠端倉庫時,用env命令設定GIT_SSL_NO_VERIFY環境變數為”ture”,並同時呼叫正常的git clone命令。完整的命令如下:
env GIT_SSL_NO_VERIFY=true git clone https://<host_name/git/project.git
- 1
- 2
第二步,在克隆完畢的倉庫中將http.sslVerify設定為”false”。完整的命令如下:
git config http.sslVerify "false"
- 1
- 2
點評:以上方法應該是Git處理可信任的SSL臨時證書很好的方法,第一步使用env命令保證了忽略證書錯誤是單次行為,不會成為預設的設定。第二次,則把忽略證書錯誤的設定限定在特定的倉庫,避免擴大該設定的適用範圍而引起的潛在安全風險。
PS:我的目的是想傳一些大檔案到github上,要是用大檔案儲存也就是LFS(large file storage),我一直以為是大檔案的問題或者是網路的問題(因為可能需要翻牆),想不到最後是證書認證的問題,查詢問題還是要一絲不苟