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

相关推荐
Flynt11 小时前
HN 382分热文里的终端小技巧,我实测了一遍,git pickaxe 最值
git·命令行
横木沉20 小时前
IntelliJ IDEA 无法识别 Git:Git is not installed 问题解决
java·git·github·intellij-idea
为你学会写情书21 小时前
Git 学习指南:从日常命令到多人协作与提交规范
git
东小黑1 天前
Git 仓库操作与 VSCode 使用指南
git·vscode·gitee
拼图2091 天前
Git常用语法
分布式·git·学习
ShineWinsu2 天前
对于Git:基础操作的超详细保姆级解析
linux·c++·git·面试·备份·管理·版本控制器
沉迷...2 天前
Git skip-worktree 使用笔记(本地忽略配置文件)
javascript·git
解道Jdon2 天前
JDK 27发布:紧凑对象头、G1默认、量子安全TLS
ide·windows·git·svn·eclipse·github·visual studio
天天喝旺仔2 天前
Git 内部原理深度解析:从 blob/tree/commit 对象到 packfile 与垃圾回收
数据结构·数据库·git·算法·哈希
艾莉丝努力练剑2 天前
【Git:综合复盘】Git 原理与使用
大数据·人工智能·git·elasticsearch·面试