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 directorygpgthere in your.gitconfigthen it could solve it. If you made sure that git is running asgpg.programthe 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.gpg: keyblock resource '/d/Git/storage/C:\Users\user\.gnupg/pubring.kbx': No such file or directorywhen I even try to list GPG keys withgpg --list-secret-keys --keyid-format LONGgit version 2.19.1and it was not working, withgit version 2.18.0all works like a charm.