【问题标题】:How do I verify commits on GitHub after I switched to using subkeys?切换到使用子键后,如何在 GitHub 上验证提交?
【发布时间】:2025-12-05 21:55:02
【问题描述】:

我在我的主 Windows 计算机上安装了 GnuPG,并创建了主键。我当时很傻,在git中用主密钥作为签名密钥,把它的公钥上传到了GitHub。这些提交在 GitHub 上显示为已验证。

后来我改变主意并生成了一个新的子密钥,将其设置为 git 的签名密钥。但是,当我尝试将公钥上传到 GitHub 时,它显示“密钥已存在且公钥已存在”并且失败。 GitHub邮箱、git邮箱和gpg邮箱好像是一样的。

我是否需要删除我在 GitHub 上上传的主密钥的公钥?我还需要执行什么其他步骤来验证它们吗?

  • 环境:windows 10,gpg 2.2.21,git 2.28.0.windows.1
  • 未验证的 GPG 密钥 ID:13BE71607A63CDF2
  • 已验证的 GPG 密钥 ID:AB61CEE479E4B09D
  • 当我gpg --armor --export 时,两个公钥看起来都一样。

【问题讨论】:

    标签: github gnupg


    【解决方案1】:

    我通过删除现有密钥并上传新密钥解决了这个问题。上传新密钥后仍会验证以前的提交。我认为这是因为旧的签名密钥仍然存在。

    执行此操作后,github 将在您的设置的 GPG 密钥部分显示多个子密钥。

    【讨论】:

    • 这绝对不是我的情况。旧提交现在是“未验证”。