You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git提交GitHub失败:无密钥报错及密钥有效性排查求助

解决Git带签名提交报错:No secret key

你当前的gpg --list-keys只显示了公钥,没有对应的私钥(私钥是签名提交的必需凭证),报错提示找不到密钥2FE08EC7CD33715B的私钥,核心问题是本地缺少签名用的私钥,或Git未正确关联私钥。以下是具体解决步骤:

第一步:确认本地是否存在私钥

执行命令查看私钥列表:

gpg --list-secret-keys
  • 若输出中没有出现密钥ID2FE08EC7CD33715B,说明私钥丢失,需重新生成或导入备份私钥。
  • 若存在该私钥,直接跳转至第三步处理Git配置问题。

第二步:重新生成GPG密钥(私钥丢失时)

  1. 执行密钥生成命令:
gpg --full-generate-key
  1. 按提示选择密钥类型(推荐RSA),设置密钥长度(至少2048位,推荐3072位),设置过期时间,填写与Git配置一致的用户名和邮箱(可通过git config user.name、git config user.email查看)。
  2. 生成完成后,再次执行gpg --list-secret-keys获取新的密钥短ID(取公钥行最后8位即可)。

第三步:配置Git关联GPG密钥

  1. 设置Git默认签名密钥(替换为你的密钥短ID,例如CD33715B):
git config --global user.signingkey CD33715B
  1. (Windows系统可能需要)指定GPG程序路径,根据实际安装路径调整:
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"

第四步:将公钥同步到GitHub

  1. 导出公钥(替换为你的密钥ID):
gpg --armor --export CD33715B
  1. 复制输出的完整公钥内容(从-----BEGIN PGP PUBLIC KEY BLOCK-----到-----END PGP PUBLIC KEY BLOCK-----),粘贴到GitHub账户的「Settings → SSH and GPG keys → New GPG key」中。

第五步:测试签名提交

执行测试命令验证配置:

git commit -S -m "测试签名提交"

若执行成功,说明配置完成,可正常提交带签名的commit到GitHub。

内容的提问来源于stack exchange,提问作者deepak s p

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 18:53:34