I'm getting this error when trying to sign a commit:
git commit -S -m "test"
gpg: skipped "EF617ACA9EC3XXXX": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
This is the output of gpg --list-secret-keys --keyid-format LONG
The key is present there
sec rsa4096/EF617ACA9EC3XXXX 2020-05-17 [SC] [expires: 2022-05-17]
AD68154000A712DCD161D826EF617ACA9EC3XXXX
uid [ultimate] name <email@gmail.com>
And this is git config with the same key
user.signingkey=EF617ACA9EC3XXXX
user.email=email@gmail.com
Any idea what's wrong?
Check first the git config gpg.program
to see if this is gpg
or gpg2
(as in here).
And type where gpg
nd where gpg2
to check which path is considered for the GPG program.
I suggested to set gpg.program
to gpg2
, and copy your gpg.exe
(assuming its version is a 2.x) to gpg2.exe
That should force Git/GPG to act as gpg2.
gpg is in git config. Path to gpg.exe is correct too, and I don't have gpg2 at all (isn't it on linux only?)
@giveall The gpg currently shipped with Git for Windows is actually a gpg 2 -2.2.17)
@giveall What version of Git for Windows are you using?
@giveall Try and set
gpg.program
togpg2
, and copy yourgpg.exe
(assuming its version is a 2.x) togpg2.exe
, for testing. See also stackoverflow.com/a/46884134/6309Anyway, renaming gpg.exe to gpg2.exe and changing it in the config helped, which is super weird.