2013-03-27 86 views
5

我一直在使用Git的沒有問題,而失敗了,然後突然就開始拋出此錯誤使用git push時:git的錯誤:gnutls_handshake()上推

error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ... fatal: HTTP request failed

這是工作的罰款,然後突然就停止。

什麼問題?

感謝

+1

看看這裏:http://askubuntu.com/questions/186847/error -gnutls-handshake-falied – niculare 2013-03-27 17:56:19

+0

@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

+0

檢查文件'git_1.7.9.5-1.dsc'是否在當前目錄中。如果不是,那麼以前的一些命令可能失敗。 – niculare 2013-03-27 18:14:27

回答

3

似乎有與gnutls包有問題。作爲解決方法,您可以嘗試使用openssl編譯git。有關如何完成此操作的更多信息,您可以找到here

1

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鍵自動完成。如果您之前已重新編譯過,這可能無法正常工作。

0

在我的情況下,同樣的錯誤是由完全不同的事情造成的。

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繁瑣的重新編譯後並沒有改變任何東西)

0

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"