No secret key when signing with git

Pablo Olmos de Aguilera C. picture Pablo Olmos de Aguilera C. · Dec 14, 2014 · Viewed 8.7k times · Source

After setting

$ gpg --list-keys
/home/pablo/.config/gnupg/pubring.gpg
-------------------------------------
pub   rsa4096/46F257F2 2014-09-16 [expires: 2015-09-16]
uid       [ultimate] Pablo Olmos de Aguilera Corradini (Personal) <[email protected]>

And putting the info on gitconfig:

[user]
    name = Pablo Olmos de Aguilera Corradini
    email = [email protected]
    signinkey = 46F257F2
[commit]
    gpgsign = true

I get:

gpg: skipped "Pablo Olmos de Aguilera Corradini <[email protected]>": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object

As you can see the keys actually exists (they also appears when running gpg --list-secret-keys). If I remove everything from gitconfig, and try to do it only with -S, I get the same error, which makes me think that git is passing my user name and email to gpg, and the uid includes the "comment" (Personal), so it doesn't found any:

$ gpg --list-keys "Pablo Olmos de Aguilera Corradini <[email protected]>"
gpg: error reading key: No public key

I'm not sure if this is a bug from git, or it is the expected result and I'm missing something :).

PS.- My guess is that I could create another uid but without a comment, and it should work.

Answer

Martin picture Martin · Dec 14, 2014

There is a typo in your gitconfig. Should be signingkey, not signinkey