I have been enjoying using Magit in Emacs to do all the git related stuff and run into an error when tagging a release. The error message is
git … tag --annotate --sign -m my_msg error: gpg failed to sign the data error: unable to sign the tag
This turned out to be caused by the fact that I have not set up gpg signing and signature. Below is how the problem is fixed and from now on all my git commits are going to be signed.
$ gpg --gen-key
There were a few dialogues between these commands, e.g. asking for names, e-mail, secret key, and it is recommended that you type random keys after these questions so that when gpg generate randoms there is more entropy. In the end, you will see some text with a line like this:
gpg: key 404NOTMYREALKEYID marked as ultimately trusted
This string “404NOTMYREALKEYID” is the key id. The same key id also shows up in the output of the following command:
$ gpg --list-secret-keys --keyid-format LONG ..... --------------------------- sec rsa3072/404NOTMYREALKEYID ......
Finally, just registering this key id with git. And the problem is solved. So the problem is not in Magit, but my configuration, since Magit uses the “–sign” option when it calls Git, which is actually a good practice.
$ git config --global commit.gpgsign true $ git config --global user.signingkey 404NOTMYREALKEYID