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

相关推荐
李狗蛋儿啊1 小时前
zero自动化框架搭建---Git安装详解
运维·git·自动化
人工干智能3 小时前
科普:“git“与“github“
git·github
{⌐■_■}15 小时前
【git】提交修改、回撤、回滚、Tag 操作讲解,与reset (--soft、--mixed、--hard) 的区别
大数据·git·elasticsearch
GardenTu18 小时前
初尝git自结命令大全与需要理解的地方记录
git·github
真就死难1 天前
Git是什么
git
机械心1 天前
代码管理git详细使用教程及最佳实践路径
git
hkj88081 天前
Git 常用命令
git
dawnkylin2 天前
通过 fork 为项目做出贡献
git·github
1379003402 天前
Git 设置代理
git
xiaodunmeng2 天前
sourcetree gitee 详细使用
git