当前位置: 首页 > 知识库问答 >
问题:

git提交签名失败:密钥不可用

杨飞飙
2023-03-14

我在尝试使用Git提交时遇到此错误。

gpg: skipped "name <name@mail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object

我已经生成了一个新的密钥,如下所示,但它仍然给出相同的错误

gpg --list-keys
~/.gnupg/pubring.gpg
--------------------------------
pub   2048R/35F5FFB2 2016-04-23
uid                  name (New key) <name@mail.com>
sub   2048R/112A8C2D 2016-04-23

密钥与上述相同

我发现这会生成一个用于git标记的GPG密钥,并按照步骤进行操作,但仍然不起作用,知道吗?

共有3个答案

严宇
2023-03-14

对我有用的是增加

git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe"

如果你想找到gpg2.exe的完整路径:

where gpg2.exe
晏兴发
2023-03-14

您需要在使用密钥之前配置密钥。

git config user.signingkey 35F5FFB2

如果要对每个存储库使用相同的密钥,则可以全局声明。

git config --global user.signingkey 35F5FFB2

来源:Git工具-签名你的工作

李俭
2023-03-14

这在Windows 10上适用(请注意,我使用的是gpg.exe的绝对路径):

git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"

这是我在修复之前遇到的错误:

gpg: skipped "3E81C*******": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object
 类似资料:
  • 我想使用我的GPS(2)子键之一对Git中的提交/标记进行签名,即新创建的RSA4096仅签名键,长ID为B0###。。。 我正在处理一个钥匙环,将主钥匙移除(备份)作为“更好的钥匙策略” 所以,我尝试为Git设置签名密钥 然而,promise 其中一个gpg代理启动并运行。 我的第一个猜测是,Git不理解长键符号,而是尝试了短键符号 但这也失败了 所以,我想知道这里有什么中断,如果Git只使用主

  • 在 提交失败,错误0个文件提交,3个文件提交失败:无法创建'C:/xampp/htdocs/project/. git/index.lock':文件存在 另一个git进程似乎正在该存储库中运行,例如,由“git提交”打开的编辑器。请确保所有进程都已终止,然后重试。如果仍然失败,那么git进程可能已经在此存储库中崩溃:手动删除该文件以继续。 我关闭了所有开放的终端,反复尝试,但没有成功。 谢谢你的建

  • 我有一个全新的Linux Mint14安装。已安装Thunderbird&Enigmail。 我试着删除我的密钥并重新移植它。我试着改变各种设置。但我想不出问题出在哪里。我以前使用过Linux/Thunderbird/Enigmail,从来没有出现过这个错误。

  • 我在尝试签署提交时遇到以下错误: 这是gpg--list secret keys--keyid format LONG的输出 钥匙在那儿 这是使用相同密钥的git config 知道出什么问题了吗?

  • 我正在尝试提交到我的存储库,但当我单击“发布分支”时,出现了一个错误,请帮助我,伙计们,我需要办公室工作的帮助,我是新来的。 点击这里查看图片

  • 有没有一种简单的方法可以让Git总是在创建的每个提交或标记上签名? 我试过这样的方法: 但这并没有成功。 我不想安装不同的程序来实现这一点。它容易做到吗? 只是一个附带的问题,也许提交不应该被签名,只有标签,我从来没有创建过,因为我为一个项目提交了单个提交,比如Homebrew,等等。