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

在git中签名提交使用了错误的子密钥,git,gnupg,signing,pgp,Git,Gnupg,Signing,Pgp,我的主PGP密钥上有多个签名子密钥,所以我有一个用于笔记本电脑,一个用于台式机。然而,这两台电脑似乎都在尝试使用我的笔记本电脑的密钥,而我的笔记本电脑的密钥是最近才创建的。我已将user.signingkey设置为笔记本电脑和桌面电脑上各自的子密钥,但git仍然使用我笔记本电脑上的子密钥。请仔细检查您是否设置了全局git配置而不是repo配置,并检查您是否提供了签名密钥而不是加密密钥 此外,git verify commit HEAD的输出将显示主键的keyid,而不是可能会误导的子密钥。要验证

我的主PGP密钥上有多个签名子密钥,所以我有一个用于笔记本电脑,一个用于台式机。然而,这两台电脑似乎都在尝试使用我的笔记本电脑的密钥,而我的笔记本电脑的密钥是最近才创建的。我已将user.signingkey设置为笔记本电脑和桌面电脑上各自的子密钥,但git仍然使用我笔记本电脑上的子密钥。

请仔细检查您是否设置了全局git配置而不是repo配置,并检查您是否提供了签名密钥而不是加密密钥

此外,
git verify commit HEAD
的输出将显示主键的keyid,而不是可能会误导的子密钥。要验证提交是否由子项签名,请创建一个测试签名子项,并在使用git verify commit HEAD检查签名之前和之后使用该子项对提交进行签名

显示机器上钥匙的钥匙id并复制所需的id:

gpg --list-secret-keys --keyid-format LONG
将git配置设置为使用指定的密钥:

git config --global user.signingkey A451BEC123

解决方案:KEYID必须附加使用指定的子键

例如

非常感谢Todd Zullinger提供了有关的解决方案


@Sebi2020-链接指向一个最终解决方案。你跟踪了吗?是的。这是我的配置的另一个问题。Git使用了错误的gpg版本。@Sebi2020-Ah。。。您是否按照下面的链接引用的方式将其修复为git config gpg.program gpg2?是的,我通过使用git config设置正确的程序来修复它
git config --global user.signingkey A451BEC123\!