You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

本地提交代码后推送GitHub遇SSL错误,请求排查根因

Git推送GitHub时SSL解密错误的排查与解决

我来帮你搞定这个困扰你的Git推送错误!结合你用的Git 2.16.3版本和MacOS High Sierra系统,咱们先拆解根本原因,再一步步解决:

根本原因

这个tlsv1 alert decrypt error错误大概率是以下两个核心问题导致的:

  1. Git版本过旧:你的Git 2.16.3是2018年的老版本,而GitHub早在几年前就停用了TLS 1.0/1.1,只支持TLS 1.2及以上。旧版本Git默认可能还在使用已被弃用的TLS协议,导致SSL握手时解密失败。
  2. 不完整的.gitconfig配置:你提供的.gitconfig里[http]部分不完整,可能存在残留的错误配置,干扰了SSL连接的正常建立。

另外还要提一句:你仓库URL里的NodeJS- programs.git有个多余空格,建议确认是不是拼写错误,虽然这不是SSL错误的直接原因,但也可能引发其他推送问题。

具体解决步骤

1. 优先更新Git到最新版本

这是最有效的解决方法,新版本Git会默认支持TLS 1.2+,同时自带更新的SSL库:

  • 如果你的Mac装了Homebrew,直接在终端运行:
    brew upgrade git
    
  • 没装Homebrew的话,直接下载Git官方Mac安装包安装即可。
  • 安装完成后验证版本:
    git --version
    
    确保版本更新到2.20以上(最好是最新稳定版)。

2. 修复.gitconfig的HTTP配置

先备份你的原配置文件,避免误改:

cp ~/.gitconfig ~/.gitconfig.backup

然后用vim编辑.gitconfig

vim ~/.gitconfig

把不完整的[http]部分修改成强制使用TLS 1.2的配置:

[user]
email = anand@gmail.com
name = anandg112
[core]
editor = vim
[http]
    sslVersion = tlsv1.2

如果不需要特殊HTTP配置,也可以直接删除[http]整个区块,让Git使用默认设置。

3. 验证SSL连接是否正常

先确保SSL验证功能开启:

git config --global http.sslVerify true

然后测试和GitHub仓库的连接:

git ls-remote https://github.com/anandg112/NodeJS-programs.git

如果能返回仓库的分支和提交ID,说明连接已经正常,此时再尝试推送即可。

4. (可选)检查系统SSL库版本

如果更新Git后还是有问题,可以检查Mac的OpenSSL版本:

openssl version

如果版本低于1.0.2,建议更新OpenSSL(不过一般更新Git后会自带适配的SSL库,这一步通常不需要)。

内容的提问来源于stack exchange,提问作者anandg112

火山引擎 最新活动