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

相关推荐
deja vu水中芭蕾3 小时前
git push origin HEAD:refs/for/分支名
git
海岛日记7 小时前
git常用操作
git
喝鸡汤7 小时前
一起学Git【番外篇:如何在Git中新建文件】
git
“αβ”7 小时前
Windows下使用git配置gitee远程仓库
git
谢家小布柔12 小时前
Git图形界面以及idea中集合Git使用
java·git
winner888113 小时前
git merge 冲突 解决 show case
java·git·git merge·git冲突
玩电脑的辣条哥17 小时前
怎么给git动图扣除背景?
git·抠图
谢家小布柔19 小时前
git中的多人协作
git
isolusion20 小时前
git分支管理及策略
git
isolusion20 小时前
git仓库的基本概念和流程以及一些基本命令
git