git clone https:// gnutls_handshake() failed: The TLS connection was non-properly terminated.
作者:互联网
This problem occurred to me especially behind corporate firewall after updating ubuntu to 18.04 LTS. I tried all possible approaches before coming across solution to compile GIT with openssl rather than gnutls. Copy+Pasting below that resolved the problem(Reference link: here)…
sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev libcurl4-openssl-dev
sudo apt-get build-dep git
mkdir ~/git-openssl
cd ~/git-openssl
apt-get source git
cd git-2.17.0/
vim debian/control # replace all libcurl4-gnutls-dev with libcurl4-openssl-dev
vim debian/rules # remove line "TEST =test" otherwise it takes longer to build the package
sudo dpkg-buildpackage -rfakeroot -b -uc -us # add "-uc -us" to avoid error "gpg: No secret key"
sudo dpkg -i ../git_2.17.0-1ubuntu1_amd64.deb
Note 1: I got "OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to proxy" when doing "git clone https://..." after steps above, which turns out to be a problem about git proxy setting. It can be fixed by:
git config --global http.proxy http://proxy.server.com:8080
git config --global https.proxy https://proxy.server.com:8080
Note that it's better to verify the proxy & port works well first in browsers like Chrome. Reference link: here.
Note 2: I accidentally removed libcurl4-gnutls-dev when trying different approaches, unfortunately, lots of dependent libs are removed as well, including the network manager and GDM3. As a result, the network can't work any more and the whole display UI was messed up(it switched to lightdm for display manager). I managed to fix the mess with "sudo apt install gdm3". So as a lesson learn, don't remove libcurl4-gnutls-dev for this issue.
原文链接:https://blog.csdn.net/laviolette/article/details/80306178
标签:TLS,terminated,handshake,git,openssl,dev,libcurl4,proxy,gnutls 来源: https://www.cnblogs.com/Ph-one/p/15494878.html