Git错误:gnutls_handshake() failed: The TLS connection was non-properly terminated

最终我通过这个博客解决了问题:
解决Git错误:gnutls_handshake() failed: The TLS connection was non-properly terminated

解决方案

1. 检查网络连接

首先,确保你的网络连接是稳定的。尝试访问其他HTTPS网站或服务,以排除网络问题。

2. 更新Git和GnuTLS

确保你的Git和GnuTLS版本是最新的。老版本的软件可能包含已知的安全漏洞或不支持最新的TLS协议。

你可以使用以下命令来更新Git(在大多数Linux发行版上):

复制代码
  1. sudo apt-get update
  2. sudo apt-get install git

对于GnuTLS的更新,你需要根据你的操作系统和包管理器来执行相应的命令。

3. 配置Git使用HTTP而不是HTTPS

如果你无法更新Git或GnuTLS,或者更新后问题仍然存在,你可以尝试配置Git使用HTTP而不是HTTPS来访问远程仓库。这将绕过SSL/TLS证书验证,但请注意,这样做会降低安全性。

你可以使用以下命令来配置Git使用HTTP:

复制代码
  1. git config --global http.postBuffer 524288000
  2. git config --global http.sslVerify false

这将禁用SSL证书验证,并将HTTP POST缓冲区的大小设置为较大的值,以避免因文件大小限制而导致的错误。

4. 配置Git使用特定的SSL/TLS版本

如果更新Git和GnuTLS没有解决问题,你还可以尝试配置Git使用特定的SSL/TLS版本。这可以通过设置GIT_SSL_VERSION环境变量来实现。

例如,要配置Git使用TLSv1.2,你可以在运行Git命令之前设置环境变量:

复制代码
  1. export GIT_SSL_VERSION=tlsv1.2
  2. git clone https://.../...

你可以根据需要尝试不同的SSL/TLS版本。

5. 检查远程仓库的SSL/TLS证书

如果以上方法都没有解决问题,可能是远程仓库的SSL/TLS证书存在问题。你可以使用openssl命令来检查证书的有效性。

复制代码
  1. openssl s_client -connect host:port

hostport替换为远程仓库的主机名和端口号。如果证书有效,你将看到证书的相关信息。如果证书无效或不受信任,你可能需要联系远程仓库的管理员来解决这个问题。

相关推荐
我没想到原来他们都是一堆坏人3 小时前
git指令
git
weixin_491865163 小时前
git新建一个分支到gitlab项目目录中
git·gitlab
菜鸡爱玩20 小时前
Git详解
git
生信研究猿21 小时前
使用git上传项目到github
git·github
安大小万1 天前
Git的命令大全
大数据·git·elasticsearch·团队开发·个人开发
babicu1231 天前
Git 版本控制系统
git
用户19642298705241 天前
Git拉代码,“连不上GitHub”还显示`port 443`?别慌,最强解决方案直接给你!
git
problc1 天前
AI自动生成Git提交信息-git AI Commit
人工智能·git·elasticsearch
lqjun08271 天前
Git克隆中断怎么办?继续克隆Hugging Face大型项目的完整指南
git
CZIDC2 天前
关闭不必要的系统服务-服务器更流畅、更安全
服务器·git·安全