gpg:跳过“XXBDXX4E”:未找到秘钥。gpg:签名失败:未找到秘钥。

7
我遵循这个教程:https://help.github.com/articles/signing-commits-using-gpg/ 我尝试像这样签署提交: https://github.com/spring-guides/tut-spring-boot-oauth2/commit/824f418ab9d04114b14a90f7c19b4b8d6dda67b7

enter image description here

但出现错误:
C:\Users\Administrator\Desktop\foo\test_gpg>git commit -m "test"
gpg: skipped "DABDD34E": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
fatal: failed to write commit object

enter image description here enter image description here enter image description here enter image description here

我的配置:

C:\Users\Administrator\Desktop\foo\test_gpg>git config --list --show-origin
file:"C:\\ProgramData/Git/config"       core.symlinks=false
file:"C:\\ProgramData/Git/config"       core.autocrlf=true
file:"C:\\ProgramData/Git/config"       core.fscache=true
file:"C:\\ProgramData/Git/config"       color.diff=auto
file:"C:\\ProgramData/Git/config"       color.status=auto
file:"C:\\ProgramData/Git/config"       color.branch=auto
file:"C:\\ProgramData/Git/config"       color.interactive=true
file:"C:\\ProgramData/Git/config"       help.format=html
file:"C:\\ProgramData/Git/config"       http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
file:"C:\\ProgramData/Git/config"       diff.astextplain.textconv=astextplain
file:"C:\\ProgramData/Git/config"       rebase.autosquash=true
file:"C:\\Program Files\\Git\\mingw64/etc/gitconfig"    credential.helper=manager
file:C:/Users/Administrator/.gitconfig  user.name=donhuvy
file:C:/Users/Administrator/.gitconfig  user.email=donhuvy@hotmail.com
file:C:/Users/Administrator/.gitconfig  user.signingkey=DABDD34E
file:C:/Users/Administrator/.gitconfig  commit.gpgsign=true
file:C:/Users/Administrator/.gitconfig  use.signingkey=DABDD34E
file:.git/config        core.repositoryformatversion=0
file:.git/config        core.filemode=false
file:.git/config        core.bare=false
file:.git/config        core.logallrefupdates=true
file:.git/config        core.symlinks=false
file:.git/config        core.ignorecase=true
file:.git/config        core.hidedotfiles=dotGitOnly
file:.git/config        remote.origin.url=https://github.com/donhuvy/test_gpg.git
file:.git/config        remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
file:.git/config        branch.master.remote=origin
file:.git/config        branch.master.merge=refs/heads/master
file:.git/config        commit.gpgsign=true

并且

C:\Users\Administrator\Desktop\foo\test_gpg>gpg --list-key
C:/Users/Administrator/AppData/Roaming/gnupg/pubring.gpg
--------------------------------------------------------
pub   2048R/DABDD34E 2016-06-10
uid       [ultimate] donhuvy (Do Nhu Vy) <v@vyhn.net>
uid       [ultimate] Do Nhu Vy (Do Nhu Vy) <v@vyhn.net>
sub   2048R/C6B535A2 2016-06-10

我在GitHub上注册了3个电子邮件:v@vyhn.netdonhuvy@hotmail.comxxxxx@gmail.com。我做错了什么?我该如何签署我的提交?


这个回答解决了你的问题吗?git commit签名失败:秘钥不可用 - Michael Freidgeim
2个回答

9

我也遇到了同样的问题。不幸的是,错误信息没有指出真正的问题......即您尚未配置git使用您正在使用的gpg程序,我怀疑这是gpg4win。[我只在Windows机器上遇到过这个问题]

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

请运行上述命令,然后执行以下命令。
git config user.signingkey DABDD34E

你可能需要重新启动终端,并重新发出git commit命令。
希望这可以帮到你。

4
我正在Windows 10上使用TortoiseGIT,我现在也遇到了同样的问题。 对我来说,以下解决方法有效:
git config --global gpg.program "c:\Program Files (x86)\GnuPG\bin\gpg.exe"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接