我一直在使用Git的沒有問題,而失敗了,然後突然就開始拋出此錯誤使用git push
時:git的錯誤:gnutls_handshake()上推
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ... fatal: HTTP request failed
這是工作的罰款,然後突然就停止。
什麼問題?
感謝
我一直在使用Git的沒有問題,而失敗了,然後突然就開始拋出此錯誤使用git push
時:git的錯誤:gnutls_handshake()上推
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ... fatal: HTTP request failed
這是工作的罰款,然後突然就停止。
什麼問題?
感謝
似乎有與gnutls
包有問題。作爲解決方法,您可以嘗試使用openssl
編譯git
。有關如何完成此操作的更多信息,您可以找到here。
askubuntu上的鏈接討論引用了git的版本號,可能與您自己的版本號不匹配。而不是這兩行:
sudo dpkg-source -x git_1.7.9.5-1.dsc
cd git_1.7.9.5 8.
你需要考慮你正在使用的git版本。在我的情況下,它是1.8.xxxxx。
sudo dpkg-source -x git_<git-version-number>.dsc
cd git_<git-version-number>
解決這個問題的簡單方法是複製命令的第一部分,然後按Tab鍵自動完成。如果您之前已重新編譯過,這可能無法正常工作。
在我的情況下,同樣的錯誤是由完全不同的事情造成的。
Debian從Wheezy升級到Jessie,從而將Apache 2.2.22升級到2.4.10。 git的努力推動以https://www.example.com並停止了與error: gnutls_handshake() failed: A TLS packet with unexpected length was received
工作原來,www.example.com是解決IPv4和IPv6地址,Apache的配置爲具有<Virtualhost x.y.w.z:443>
僅IPv4地址。將其更改爲<Virtualhost _default_:443>
解決了該問題。
(只是這樣如果它可以幫助別人有同樣的問題...才發現它的git的使用OpenSSL繁瑣的重新編譯後並沒有改變任何東西)
This answer可能的幫助。儘管問題很老,但我很驚訝這些問題沒有任何聯繫。
只是可以肯定的有用信息不會迷路,我複製從問題的簡單解決方案:
hostname=XXX
port=443
trust_cert_file_location=`curl-config --ca`
sudo bash -c "echo -n | openssl s_client -showcerts -connect $hostname:$port 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' >> $trust_cert_file_location"
看看這裏:http://askubuntu.com/questions/186847/error -gnutls-handshake-falied – niculare 2013-03-27 17:56:19
@niculare - 我得到這個錯誤'dpkg-source:error:can not open git_1.7.9.5-1.dsc:這行沒有這樣的文件或目錄''sudo dpkg-source -x git_1.7.9.5-1.dsc' – Wahtever 2013-03-27 18:06:35
檢查文件'git_1.7.9.5-1.dsc'是否在當前目錄中。如果不是,那麼以前的一些命令可能失敗。 – niculare 2013-03-27 18:14:27