目前,我使用两个电子邮件地址(个人和公司)以及一个SSH密钥登录GitHub。但是我使用相同的GPG密钥进行签名。这两个电子邮件地址在我的GitHub邮箱设置页面中都得到了验证。
对于第一个电子邮件地址(个人),没有任何问题——当我提交时,它会显示为已验证。但是对于第二个电子邮件地址(公司),提交会显示为未验证,并出现以下警告信息:
此签名中的电子邮件与提交者电子邮件不匹配。
$ 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文档中描述的解决提交签名验证问题和在您的GPG密钥中使用已验证的电子邮件地址指南来操作,但仍未解决问题。
gpg --output public.pgp --armor --export name@mail
但是GitHub显示:“密钥已存在且公钥已存在”。 - Dentrax