Когда я пытаюсь подключиться к любому HTTPS-серверу с помощью git
, выдается следующая ошибка:
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed
Я думаю, что, возможно, некоторые пакеты, связанные с gnutls_handshake
, были повреждены. Итак, я хочу переустановить их.
Какие пакеты могут быть связаны с этими ошибками? Или как я могу исправить эту ошибку?
Получил причину проблемы, это был gnutls
пакет. Это работает странно за прокси. Но openssl
работает нормально даже в слабой сети. Поэтому обходной путь заключается в том, что мы должны скомпилировать git
с openssl
. Для этого выполните следующие команды:
sudo apt-get update
sudo apt-get install build-essential fakeroot dpkg-dev
sudo apt-get build-dep git
mkdir ~/git-openssl
cd ~/git-openssl
apt-get source git
dpkg-source -x git_1.7.9.5-1.dsc
cd git-1.7.9.5
(Не забудьте заменить 1.7.9.5
на актуальную версию git в вашей системе.)
Затем отредактируйте файл debian/control
( выполните команду: gksu gedit debian/control
) и замените все экземпляры libcurl4-gnutls-dev
на libcurl4-openssl-dev
.
Затем соберите пакет (если он не проходит тест, вы можете удалить строку TEST=test
из файла debian/rules
):
sudo apt-get install libcurl4-openssl-dev
sudo dpkg-buildpackage -rfakeroot -b
Установить новый пакет:
i386 : sudo dpkg -i ../git_1.7.9.5-1_i386.deb
x86_64: sudo dpkg -i ../git_1.7.9.5-1_amd64.deb
Вдохновленный здесь: 1123]
Для меня все закончилось тем, что SSL-сертификат был самоподписанным. Попробуйте это
git config --global http.sslVerify false
Это упоминается в одном из комментариев к другому ответу, но я чувствую, что это должно быть более заметным https://askubuntu.com/users/177551 /paul-nelson-baker написал сценарий оболочки, который для меня решил эту проблему.
Скрипт доступен в его репозитории https://github.com/paul-nelson-baker/git-openssl-shellscript и перекомпилирует git с помощью openssl вместо gnutls. Прочитайте README для всей истории, но это сработало для меня, так что спасибо, Пол.