无法在 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密钥。
这就是最终的样子。使用任何列出的地址签名的提交现在将显示为已验证。
目前,我使用 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密钥。
这就是最终的样子。使用任何列出的地址签名的提交现在将显示为已验证。