2013-03-27 54 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"