无法在 GitHub 上将我的第二封邮件提交为 "verified"

Could not make my second mail's commits as "verified" on GitHub

目前,我使用 2 封电子邮件(个人 + 公司)和一个 SSH 密钥登录 GitHub。但我使用相同的 GPG 密钥进行签名。两者都在我的 GitHub 电子邮件设置页面上进行了验证。

在第一个(个人)上,没问题,当我提交时它显示为 Verified。在第二个(公司)上,提交在 GitHub 中显示为 Unverified,并带有以下警告消息:

The email in this signature doesn’t match the committer email.

$ gpg --list-secret-keys --keyid-format LONG

...
sec   rsa4096/MY_GPG_KEY_ID 2020-05-19 [SC] [expires: 2022-05-19]
...
uid    [ultimate] Furkan (Company key) <second_email@test.com>
uid    [ultimate] Furkan <first_email@test.com>

在存储库中:

$ git log --show-signature

...
gpg: Good signature from "Furkan (Company key) <second_email@test.com>" [ultimate]
gpg:                 aka "Furkan <first_email@test.com>" [ultimate]
Author: MyGitHubNickname <second_email@test.com>
...

本地配置设置:

$ git config --local --list

...
user.name=Furkan
user.email=second_email@test.com

全局配置设置:

$ git config --global --list

...
user.name=MyGitHubNickname
user.email=second_email@test.com
user.signingkey=MY_40_CHARACTER_SIGNING_KEY

但没有成功:

$ git commit -S --amend --reset-author
$ git push --force

我在这个弹出窗口的底部看到 MY_GPG_KEY_ID 键,完全一样。

我按照 GitHub 文档中描述的 Troubleshooting commit signature verification and Using a verified email address in your GPG key 指南进行操作,但仍然没有解决问题。

就我而言,提交者和作者之间存在差异。 GitHub 默认显示作者,但提交者设置为自动生成。

您可以查看 git log --format=full

到目前为止你所做的一切都是正确的;您只是错过了最后一步,即更新 GitHub 的 public 密钥副本。

您需要重新生成您的public密钥(gpg --armor --export KEY_ID),然后,在您的GitHub用户设置>“SSH和GPG密钥”中,您需要删除原始密钥并上传重新生成的public密钥。

这就是最终的样子。使用任何列出的地址签名的提交现在将显示为已验证。