This worked for me on Windows 10 (Note that I use the absolute path to gpg.exe):
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"
This was the error I got prior to the fix:
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
You need to configure the secret key before using it.
git config user.signingkey 35F5FFB2
Or declare it globally if you want to use the same key for every repository.
git config --global user.signingkey 35F5FFB2
Source: Git Tools - Signing Your Work
What worked for me was adding
git config --global gpg.program "C:/Program Files (x86)/GNU/GnuPG/gpg2.exe"
If you want to find the full path of gpg2.exe:
where gpg2.exe
I'like to complete all these answers, cause I've got many issues with this.
These exemples use the --global
flag, but you can remove it if you want to to these things locally.
git config --global user.signingkey 35F5FFB2
Some systems (Ubuntu for exemple) can have gpg
and gpg2
at the same time. You need to specify you'll use gpg2
git config --global gpg.program gpg2
It is possible if you use these command in an ssh environment that you have the following error : Inappropriate ioctl for device
or gpg: échec de la signature : Ioctl() inapproprié pour un périphérique
. This can be fixed via :
export GPG_TTY=$(tty)
git config --global commit.gpgsign true
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With