git错误The TLS connection was non-properly terminated解决

2023-11-05 03:59

本文主要是介绍git错误The TLS connection was non-properly terminated解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题描述

在执行hexo d发布文章时候,出现错误:
error fatal: unable to access ‘https://github.com/huanyouchen/huanyouchen.github.io.git': gnutls_handshake() failed: The TLS connection was non-properly terminated.

git-error

git-error

具体原因还不清楚,搜索一番后看到好几个都是用openssl解决的,于是按着试试,果然也解决了。方法主要参考这两篇文章:
使用 Git 同步时出现ssl错误
git 无法clone踩坑实录
在试的过程中我也遇到了另外两个问题,因此也记录一下。

解决方法

安装编译环境:

1
2
3
4
5
6
7
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
sudo apt-get source git
dpkg-source -x git_2.17.1-1ubuntu0.4.dsc   # git版本不同注意根据自己的更改

在第三个命令执行时,我遇到了一个错误,提示如下:

正在读取软件包列表... 完成
E: 您必须在 sources.list 中指定代码源(deb-src) URI

解决方法参考:打开Ubuntu中的“软件和更新”-》Ubuntu软件-》把“可从互联网下载”中的最后一个:源代码勾选上。然后就可以顺利执行第三步了。

使用sed命令,把debian/control中所有的libcurl4-gnutls-dev改为libcurl4-openssl-dev

cd git-2.17.1/   # 进入目录
sudo sed -i 's/libcurl4-gnutls-dev/libcurl4-openssl-dev/g' debian/control

删除 debian/rules 中的TEST=test行

vim debian/rules 原内容中的TEST=test行如下:LDFLAGS :=$(shell dpkg-buildflags --get LDFLAGS)
TEST =test
OPTS =NO_OPENSSL=1 prefix=/usr gitexecdir=/usr/lib/git-core \将其中的TEST=test行删掉

编译

sudo apt-get install libcurl4-openssl-dev
sudo dpkg-buildpackage -rfakeroot -b -uc -us  # add "-uc -us" to avoid error "gpg: No secret key"

安装

sudo dpkg -i ../git_2.17.1-1ubuntu0.4_amd64.deb   #注意是在上一级目录

做好以上的这几步,网上的教程就结束了,我本来以为就已经弄好了,然后再次hexo d的时候,还是会出错,但是这次错误变成了SSL_ERROR_SYSCALL:

Error: fatal: unable to access 'https://github.com/huanyouchen/huanyouchen.github.
io.git':LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443

然后再搜这个SSL_ERROR_SYSCALL的解决方法时候,网上的各种说法都有,,然后开始自己摸索,不一定适合其他人,但是我的问题最终解决了。

思路来源:
https://github.com/angular/angular-phonecat/issues/212
https://segmentfault.com/q/1010000013461740

首先设了代理(不知道这一步有没有用,当时试了一下):

http.proxy=http://127.0.0.1:1080

然后到GitHub网站上,把我的SSH Keys设置那里,加入了我的id_rsa.pub,然后ssh -T git@github.com验证一下,提示:

Hi huanyouchen! You've successfully authenticated, but GitHub does not provide shell access.

再然后进入hexo网站的根目录,找到hexo的配置文件_config.yml,在配置文件中的deploy那一项从原来HTTPS的改成SSH的。

deploy:type: git #repo: https://github.com/huanyouchen/huanyouchen.github.io.gitrepo: git@github.com:huanyouchen/huanyouchen.github.io.gitbrance: master

现在终于成功了。

git-error-solve

git-error-solve

这篇关于git错误The TLS connection was non-properly terminated解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/347277

相关文章

Git中恢复已删除分支的几种方法

《Git中恢复已删除分支的几种方法》:本文主要介绍在Git中恢复已删除分支的几种方法,包括查找提交记录、恢复分支、推送恢复的分支等步骤,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录1. 恢复本地删除的分支场景方法2. 恢复远程删除的分支场景方法3. 恢复未推送的本地删除分支场景方法4. 恢复

C#使用HttpClient进行Post请求出现超时问题的解决及优化

《C#使用HttpClient进行Post请求出现超时问题的解决及优化》最近我的控制台程序发现有时候总是出现请求超时等问题,通常好几分钟最多只有3-4个请求,在使用apipost发现并发10个5分钟也... 目录优化结论单例HttpClient连接池耗尽和并发并发异步最终优化后优化结论我直接上优化结论吧,

Spring常见错误之Web嵌套对象校验失效解决办法

《Spring常见错误之Web嵌套对象校验失效解决办法》:本文主要介绍Spring常见错误之Web嵌套对象校验失效解决的相关资料,通过在Phone对象上添加@Valid注解,问题得以解决,需要的朋... 目录问题复现案例解析问题修正总结  问题复现当开发一个学籍管理系统时,我们会提供了一个 API 接口去

解决systemctl reload nginx重启Nginx服务报错:Job for nginx.service invalid问题

《解决systemctlreloadnginx重启Nginx服务报错:Jobfornginx.serviceinvalid问题》文章描述了通过`systemctlstatusnginx.se... 目录systemctl reload nginx重启Nginx服务报错:Job for nginx.javas

Mysql DATETIME 毫秒坑的解决

《MysqlDATETIME毫秒坑的解决》本文主要介绍了MysqlDATETIME毫秒坑的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着... 今天写代码突发一个诡异的 bug,代码逻辑大概如下。1. 新增退款单记录boolean save = s

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

Mysql8.0修改配置文件my.ini的坑及解决

《Mysql8.0修改配置文件my.ini的坑及解决》使用记事本直接编辑my.ini文件保存后,可能会导致MySQL无法启动,因为MySQL会以ANSI编码读取该文件,解决方法是使用Notepad++... 目录Myhttp://www.chinasem.cnsql8.0修改配置文件my.ini的坑出现的问题

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

MySQL8.0找不到my.ini如何解决

《MySQL8.0找不到my.ini如何解决》在配置MySQL主从复制时,发现找不到my.ini配置文件,通过检查路径和打开隐藏文件夹,最终在C:ProgramDataMySQLMySQLSer... 目录问题描述解决方法总结问题描述今天在配置mysql主从复制的时候发现,找不到my.ini这个配置文件。