2016-11-26 54 views
2

我试图生成密钥并签署提交。我的密钥列表:无法承诺在Windows 10上使用gpg2签名(GnuPG)

gpg2 --list-keys

C:/Users/raski/AppData/Roaming/gnupg/pubring.gpg 

------------------------------------------------ 
pub 2048R/8E3A3251 2016-11-26 
uid  [ultimate] My Name <[email protected]> 
sub 2048R/29C8D116 2016-11-26 

git config --global -l

filter.lfs.clean=git-lfs clean -- %f 
filter.lfs.smudge=git-lfs smudge -- %f 
filter.lfs.required=true 
user.name=roma 
[email protected] 
user.signingkey=8E3A3251 
commit.gpgsign=true 
gpg.program=D:/Programs/GnuPG/pub/gpg2 

我尝试做一个承诺:

git commit -m "initial" 

此前,添加我的公共PGP密钥的设置Github上。但是,我有错误:

gpg: skipped "2048R/8E3A3251": No secret key 
gpg: signing failed: No secret key 
error: gpg failed to sign the data 
fatal: failed to write commit object 

这就是为什么它仍采用GPG,而不是GPG 2,虽然我已经配置为gpg2的路径。存在什么问题?

+0

什么是'gpg2 -K'(又名'gpg2 --list-secret-keys')说?你只是在这里展示公众的一半。 – jthill

回答

1

It is why it is still using gpg, instead of gpg 2, although I have configured the path to gpg2.

那将是因为git的窗户本身也包括在其<git>/usr/bin文件夹gpg.exe 1.x中,通过git命令使用。

What can be the problem exists?

你需要在你的<gpg2>\latest\pub文件夹gpg2.exe复制到gpg.exe,这样的PATH实际上可能包括从gitgpg.exe 1.x的前gpg.exe 2.X。
或者,如果它不起作用,请将<gpg2>\latest\pub\gpg2.exe复制到<git>/usr/bin/gpg.exe中。

0

只需在<git>/usr/bin下删除gpg.exe文件即可。

+0

当您升级Windows的git时,您需要记得重新调用'gpg.exe'。 – mrm