在git中签署提交使用了错误的子密钥。

6

我在我的主PGP密钥上有多个签名子密钥,这样我就有一个用于我的笔记本电脑和一个用于我的台式机。然而,似乎两台计算机都尝试使用我的笔记本电脑的密钥,这个密钥比我的台式机的密钥更新。我已经在我的笔记本电脑和台式机上设置了user.signingkey为相应的子密钥,但是git仍然使用我的笔记本电脑的密钥。

2个回答

11
解决方案:必须在 KEYID 后附加 ! 才能使用特定的子密钥。
例如。
git config --global user.signingkey A451BEC123\!

非常感谢Todd ZullingerGit邮件列表上提供了解决方案。

附加信息


@Sebi2020 - 这个链接指向一个明确的解决方案。你有跟进吗? - Android Control
是的,这是我的配置出了另一个问题。Git使用了错误的gpg版本。 - Sebi2020
@Sebi2020 - 啊...你是不是像下面的链接所引用的那样,这样修复了它git config gpg.program gpg2? https://dev59.com/GloT5IYBdhLWcg3wnQn9 - Android Control
是的,我通过使用git config命令设置正确的程序来解决了这个问题。 - Sebi2020

4
请仔细检查您设置的是全局git配置而不是存储库配置,并检查您是否提供了签名密钥而不是加密密钥。
此外,git verify-commit HEAD的输出将显示主密钥的keyid,而不是可能会误导的子密钥。要验证提交是否由子密钥签名,请创建一个测试签名子密钥并使用它对提交进行签名,并在使用git verify-commit HEAD检查签名之前和之后撤销子密钥
显示机器上密钥的key id并复制您想要的id:
gpg --list-secret-keys --keyid-format LONG

将您的git配置设置为使用指定的密钥:

git config --global user.signingkey A451BEC123

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接