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

相关推荐
蜜汁小强4 小时前
macOS 上的git代理配置在哪里
git·macos·代理模式·proxy模式
钟佩颖5 小时前
Git .
git
Zhongyi_Li17 小时前
git merge的一些记录
git
沛沛老爹19 小时前
Web开发者转型AI:Agent Skills版本控制与管理实战——从Git到AI技能仓库
java·前端·人工智能·git·架构·rag
子琦啊20 小时前
极速移除 Git 历史中的大文件,告别 git filter-branch太慢的问题
git
儒雅的晴天21 小时前
git笔记
笔记·git
Ama_tor1 天前
git bash|下载、安装与配置(Windows11)
git
惜__缘1 天前
Git项目迁移的坑点
git
阿杰 AJie1 天前
Git 分支与多人开发使用指南(Gitee + 本地 Git)
git·elasticsearch·gitee
论迹1 天前
【Git】-- 解决git branch -a打印已被删除的远程分支
git