【发布时间】:2018-10-05 08:53:59
【问题描述】:
我曾经让我的提交由 gpg 签名,这一切都很好,但我突然收到了这条消息:
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
注意keyblock资源的路径,由两条路径组成,确实是无效的。
关于我的设置的信息
我的提交是自动签名的,我的设置来自this answer,总而言之:我像平常一样设置 gpg,然后安装 gpg2 并将我的密码短语通过管道传输到 gpg 每次使用 shell 文件。不,我没有让 gpg-agent 来做这个,不过如果你知道怎么做,请回答这个问题:The key whose key-id is in the signature did not sign this commit
我有一个环境变量GNUPGHOME,它指向C:\Users\username\.gnupg。我尝试将其更改为C:/Users/username/.gnupg,但错误中的斜线也发生了变化。我尝试将其更改为/c/Users/username/.gnupg,但错误消息变成了
gpg: Fatal: can't create directory '/c/Users/username/path/to/project/C:/Users/username/.gnupg': No such file or directory
我也不知道我的系统发生了什么变化导致了这个问题。
相关问题
这个问题与不同的路径非常相似,但没有解决:Git commit signing GPG issue
评论是检查 gitconfig 中的路径,但我认为在任何 gitconfig 中都没有指向 gnupg 目录的路径,而且我认为它不会以 repo 的路径为前缀。我主要有这个~\.gitconfig:
[user]
signingkey = my_key
[commit]
gpgsign = true
[gpg]
program = C:\\Users\\username\\gpg-no-tty.sh
在这里也找到了同样问题的人:https://jira.atlassian.com/browse/SRCTREEWIN-8527
从gnupg 的标签描述中我无法确定这个问题是属于这里还是属于超级用户,因为我不确定这是编程使用还是直接使用(两者都有?)。
【问题讨论】:
-
你解决了吗?
-
@Lisek 不,我还是一点头绪都没有!
-
@Lisek 已解决,请参阅罗斯的回答。
-
所以你刚刚运行了这个命令,它工作了吗?试过了,还是遇到
gpg: keyblock resource '/d/git/storage/C:\Users\user/.repoconfigs\gnupg/pubring.kbx': No such file or directory的问题 -
就我而言,事实证明使用不同的 git 版本可以解决问题。我有
git version 2.19.1,但它不起作用,git version 2.18.0一切都像一个魅力。