gpg 在 Windows 10 上尝试签署 git 提交时跳过了 KEY No Secret key 错误消息

问题描述 投票:0回答:2

我按照此处的说明进行操作:https://docs.github.com/en/authentication/managing-commit-signature-verification/generating-a-new-gpg-key

我没有发表评论。只有我的名字和电子邮件与我的 github 帐户匹配。

然后,我将 git 配置设置为以下内容:

[user]
    name = First Last
    email = [email protected]
    signingkey = ABCDMYKEY12345
[commit]
    gpgsign = true
[gpg]
    program = C:\\Program Files (x86)\\GnuPG\\bin\\gpg.exe

gpg --version
回归

$ gpg --version
gpg (GnuPG) 2.2.29-unknown
libgcrypt 1.9.3-unknown

我跑了

GIT_TRACE=1
并返回了

$ GIT_TRACE=1 git commit --allow-empty -m "signing"
09:30:10.094197 exec-cmd.c:237          trace: resolved executable dir: C:/Program Files/Git/mingw64/bin
09:30:10.102197 git.c:455               trace: built-in: git commit --allow-empty -m signing
09:30:10.126235 run-command.c:666       trace: run_command: 'C:\Program Files (x86)\GnuPG\bin\gpg.exe' -bsau ABCDMYKEY12345
gpg: skipped "ABCDMYKEY12345": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object

我已经三重检查了拼写错误。这看起来不像是重复的 gpg:跳过“XXBDXX4E”:秘密密钥不可用。 gpg:签名失败:密钥不可用

因为我的gpg程序设置正确

我见过这个问题 Git 并不将 gpg 密钥视为秘密,即使它是秘密,我该如何修复它?

但是我不明白gpg2的事情。我的 gpg 版本是 2。为什么我需要另一个 gpg2 程序。另外,我从哪里得到gpg2?它应该与 Git 一起提供吗?

git git-commit gnupg
2个回答
2
投票

我在 git config 中更改了 gpg.program 以指向 Git 的 gpg,它在我的计算机上位于

C:/Program Files/Git/usr/bin/gpg.exe


0
投票

对我来说,逐步解决方案是

git config --global gpg.program "C:/Program Files/Git/usr/bin/gpg.exe”

gpg --full-generate-key

Follow the instruction on generating  key

Copy the key

git config --global user.signingkey 8DCAD9B************
© www.soinside.com 2019 - 2024. All rights reserved.