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

posted @ 2021-11-01 17:51  瘋耔  阅读(792)  评论(0编辑  收藏  举报
跳至侧栏