{"meta":{"title":"检查现有 GPG 密钥","intro":"在生成 GPG 密钥之前，您可以检查是否有任何现有的 GPG 密钥。","product":"身份验证","breadcrumbs":[{"href":"/zh/authentication","title":"身份验证"},{"href":"/zh/authentication/managing-commit-signature-verification","title":"验证提交签名"},{"href":"/zh/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys","title":"现有 GPG 密钥"}],"documentType":"article"},"body":"# 检查现有 GPG 密钥\n\n在生成 GPG 密钥之前，您可以检查是否有任何现有的 GPG 密钥。\n\n### 支持的 GPG 密钥算法\n\nGitHub 支持多种 GPG 密钥算法。 如果您尝试添加使用不支持的算法生成的密钥，可能会发生错误。\n\n* RSA\n* ElGamal\n* DSA\n* ECDH\n* ECDSA\n* EdDSA\n\n> \\[!NOTE]\n> 默认情况下，GPG 不会在 macOS 或 Windows 上安装。 若要安装 GPG 命令行工具，请参阅 [GnuPG 的下载页面](https://www.gnupg.org/download/)。\n\n1. 打开<span class=\"platform-mac\">终端</span><span class=\"platform-linux\">终端</span><span class=\"platform-windows\">Git Bash</span>。\n2. 使用 `gpg --list-secret-keys --keyid-format=long` 命令列出你拥有其公钥和私钥的长形式 GPG 密钥。 签名提交或标记需要私钥。\n\n   ```shell copy\n   gpg --list-secret-keys --keyid-format=long\n   ```\n\n   > \\[!NOTE]\n   > Linux 上的某些 GPG 安装可能需要改用 `gpg2 --list-keys --keyid-format LONG` 查看现有密钥的列表。 在这种情况下，还需要通过运行 `git config --global gpg.program gpg2` 来配置 Git 以使用 `gpg2`。\n3. 检查命令输出以查看是否有 GPG 密钥对。\n   * 如果没有 GPG 密钥对，或者不想使用任何可用于对提交和标记进行签名的密钥对，则[生成新的 GPG 密钥](/zh/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)。\n   * 如果存在现有的 GPG 密钥对，并且您希望使用它来对提交和标记进行签名，则可以使用以下命令显示公钥，并替换要使用的 GPG 密钥 ID。 在本例中，GPG 密钥 ID 为 `3AA5C34371567BD2`：\n\n     ```shell\n     $ gpg --armor --export 3AA5C34371567BD2\n     # Prints the GPG public key, in ASCII armor format\n     ```\n\n     考虑使用选项 `--export-options export-minimal` 导出密钥，这可以防止错误读取包含弃用字段的密钥。\n\n     然后，可以[将 GPG 密钥添加到GitHub帐户](/zh/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)。\n\n## 其他阅读材料\n\n* [生成新 GPG 密钥](/zh/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)\n* [将 GPG 密钥添加到GitHub帐户](/zh/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)\n* [将您的签名密钥告知 Git](/zh/authentication/managing-commit-signature-verification/telling-git-about-your-signing-key)\n* [将电子邮件与 GPG 密钥关联](/zh/authentication/managing-commit-signature-verification/associating-an-email-with-your-gpg-key)\n* [对提交签名](/zh/authentication/managing-commit-signature-verification/signing-commits)\n* [对标记签名](/zh/authentication/managing-commit-signature-verification/signing-tags)"}