Git error: gpg failed to sign the data on Linux

pmcg521 picture pmcg521 · Oct 15, 2018 · Viewed 8.1k times · Source

I am having trouble signing commits. With the following git config:

user.name=Bob
user.email=[bob's email]
user.signingkey=ABCDEFGH
user.user=bob1
gpg.program=gpg2

I was told to include only the first eight characters of the secret key.

After staging, upon git commit -S -m "commit message", I receive the following errors:

error: gpg failed to sign the data
fatal: failed to write commit object

It seems that most users who encounter this error are on Macs and have some extra setup to do. But I'm on Kali Linux.

Any advice?

Answer

larsks picture larsks · Oct 15, 2018

I was told to include only the first eight characters of the secret key.

The value of user.signingkey is a key id identifying which key git should use when generating the signature.

There's a complete example in the official documentation that shows how this should work. If gpg --list-keys shows something like:

/Users/schacon/.gnupg/pubring.gpg
---------------------------------
pub   2048R/0A46826A 2014-06-04
uid                  Scott Chacon (Git signing key) <[email protected]>
sub   2048R/874529A9 2014-06-04

Then the key id is 0A46826A:

git config --global user.signingkey 0A46826A