I used to have my commits signed by gpg which worked all fine, but I suddenly got this message instead:
gpg: keyblock resource '/c/Users/username/path/to/project/C:\Users\username\.gnupg/pubring.kbx': No such file or directory
gpg: skipped "my_key": No secret key
gpg: signing failed: No secret key
error: gpg failed to sign the data
fatal: failed to write commit object
Note the path of the keyblock resource, it consists of two paths and is indeed not valid.
Information about my setup
I had my commits automatically signed, my setup is from this answer, in summary: I set up gpg like normal, then installed gpg2 and pipe my passphrase into gpg every time using a shell file. And no, I didn't get gpg-agent to do this, though if you know how to do it please answer this question: The key whose key-id is in the signature did not sign this commit
I have an environment variable GNUPGHOME
which points to C:\Users\username\.gnupg
. I tried changing it to C:/Users/username/.gnupg
but the slashes just changed in the error as well. I tried changing it to /c/Users/username/.gnupg
but the error message became
gpg: Fatal: can't create directory '/c/Users/username/path/to/project/C:/Users/username/.gnupg': No such file or directory
I also don't know what changed on my system that caused this problem.
Related issues
This question is very similar with a different path but it was not solved: Git commit signing GPG issue
The comment is to check a path in a gitconfig, but I don't have a path to the gnupg directory in any gitconfig and it wouldn't be prefixed with the path to the repo anyway, I think. I have this in my main ~\.gitconfig
:
[user]
signingkey = my_key
[commit]
gpgsign = true
[gpg]
program = C:\\Users\\username\\gpg-no-tty.sh
Also found someone with the same problem here: https://jira.atlassian.com/browse/SRCTREEWIN-8527
From the tag description of gnupg I can't figure out whether this question belongs here or on Super User, because I'm not sure if this is programmatic or direct use (both?).
gpg: keyblock resource '/d/git/storage/C:\Users\user/.repoconfigs\gnupg/pubring.kbx': No such file or directory
– Vernicegpg
there in your.gitconfig
then it could solve it. If you made sure that git is running asgpg.program
the full"C:\Program Files (x86)\GnuPG\bin\gpg.exe"
and not justgpg
(directly or via shell file) then I don't know what the problem is on your side - I checked that without doing this I get still the same error so I'm sure it solves it for me. – Labiogpg: keyblock resource '/d/Git/storage/C:\Users\user\.gnupg/pubring.kbx': No such file or directory
when I even try to list GPG keys withgpg --list-secret-keys --keyid-format LONG
– Vernicegit version 2.19.1
and it was not working, withgit version 2.18.0
all works like a charm. – Vernice