git连接到https服务器时出现“gnutls_handshake() failed”
git连接到https服务器时出现“错误: gnutls_handshake()失败”
问题描述
当我尝试使用git连接到任何HTTPS服务器时(例如git clone),它会出现以下错误:
$ git clone https://github.com/xx/x.git
Cloning into 'xx'...
fatal: unable to access 'https://github.com/xx/xx.git/': gnutls_handshake() failed: The TLS connection was non-properly terminated.
之前使用搜索到一些文章,说是代理问题,取消即可:
# 如果没有配置代理,可使用以下命令 取消代理 :
git config --global --unset http.proxy
git config --global --unset https.proxy
可是问题仍然存在。
error: gnutls_handshake() failed: A TLS packet with unexpected length was received. while accessing ...
fatal: HTTP request failed
我认为可能有些与gnutls_handshake相关的软件包已被破坏;开始怀疑SSL有关的部分。
参考资料:
傻瓜化解决方法
关闭SSL自签名,不需要额外的改动:
git config --global http.sslVerify false
附录:通过重装git解决
得到问题的原因,gnutls包出现问题可能会导致连接异常,它在代理背后很奇怪。
但是openssl即使在弱网络中也能正常工作。所以解决方法是我们应该用openssl编译git。
为此,请运行以下命令:
$ 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。
然后构建软件包(如果测试失败,可以从文件debian/rules中删除TEST=test行):
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
灵感来自:https://github.com/xmendez/wfuzz/wiki/PyCurlSSLBug
git连接到https服务器时出现“gnutls_handshake() failed”的更多相关文章
- 连接到 Linux 服务器时首先要运行的 5 个命令
作为一个系统管理员/SRE 工作 5 年后,我知道当我连接到一台 Linux 服务器时我首先应该做什么.这里有一系列关于服务器你必须了解的信息,以便你可以(在大部分时间里)更好的调试该服务器. 连上 ...
- git clone或者git clone时遇到gnutls_handshake() failed: An unexpected TLS packet was received.如何处理?
答: 直接将https修改为http即可, 如: $ git clone https://github.com/Jello_Smith/my-example.git -> git clone ...
- 在centos搭建git服务器时,不小心把/home/git目录删除了,我是怎么恢复的
在centos搭建git服务器时,不小心把/home/git目录删除了,我是怎么恢复的 在删除掉/home/git目录后,每次 git push提交时,都让填写密码,烦 第一步:在本地找到id_rsa ...
- PhpStorm 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...
- PhpStorm 9.03 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
第一步:配置 git.exe File -> Default Settings -> Version Control -> Git -> Path go Git executa ...
- Git详解之四 服务器上的Git
以下内容转载自:http://www.open-open.com/lib/view/open1328069988843.html 服务器上的 Git 到目前为止,你应该已经学会了使用 Git 来完成日 ...
- 使用 Git 对原理图和线路板时行版本控制
使用 Git 对原理图和线路板时行版本控制 由于之前一直用 Git 管理代码,我又开始试用 git 来对原理图和线路板时行版本控制. 由于 原理图和 PCB 的文件都是二进制文件,git 管理并不怎么 ...
- Nodejs创建HTTPS服务器
Nodejs创建HTTPS服务器 从零开始nodejs系列文章,将介绍如何利Javascript做为服务端脚本,通过Nodejs框架web开发.Nodejs框架是基于V8的引擎,是目前速度最快的Jav ...
- 【git】git中使用https和ssh协议的区别以及它们的用法
git可以使用四种主要的协议来传输资料: 本地协议(Local),HTTP 协议,SSH(Secure Shell)协议及 git 协议.其中,本地协议由于目前大都是进行远程开发和共享代码所以一般不常 ...
- git使用,Git的skil-map,git配置http/https/socks5代理
. 检出.克隆库: git clone git://git.openwrt.org/openwrt.git 2. git查看某个文件的修改历史 git log --pretty=oneline 文件名 ...
随机推荐
- 6.Ingress 七层负载
官方文档:https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/题目: 设置配置环境: [candidate@no ...
- 使用open webui+ollama部署本地大模型
使用open webui+ollama部署本地大模型 上次使用了angthingllm + ollama部署了本地大模型,详情见:https://www.cnblogs.com/jokingremar ...
- Multisim 14.0 安装教程
1. 安装环境: win 7 64bit + Multisim 14.0 教育版. 2. 安装步骤: step 1:下载安装包NI_Circuit_Design_Suite_14.0***,解压后如 ...
- 推荐一款微信公众平台Python开发神器!
1.引言 在当今数字化时代,微信公众平台成为了企业和个人连接用户的重要渠道.为了高效地管理和与用户互动,开发者需要一个强大而灵活的工具. Weixin-Python 正是这样一个为微信公众平台量身打造 ...
- python计算机视觉学习笔记——PIL库的用法
如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 这个 ...
- java获取Linux和window系统多网卡mac地址和IP
public static List<Map<String, String>> getMacAndIp() throws SocketException { List<M ...
- 一些常用但是不好记的css样式
设置滚动条样式 /*定义滚动条宽高及背景,宽高分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 10px; /*对垂直流动条有效*/ height: 10px; ...
- linux下date命令设置时间的输出格式和修改时间
目录 一.关于linux下的时间 二.linux下使用date命令设置时间的输出格式 三.修改linux时间 3.1 在可以访问Internet情况下修改时间 3.2 在无法访问Internet情况下 ...
- 基于Python的性能优化
一.多线程 在CPU不密集.IO密集的任务下,多线程可以一定程度的提升运行效率. import threading import time import requests def fetch_url( ...
- # [NOIP2011 提高组] 铺地毯
传送锚点:https://www.luogu.com.cn/problem/P1003 题目描述 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形 ...