# 将电子邮件与 GPG 密钥关联

GPG 密钥必须与符合你的提交者身份的已验证电子邮件关联。

如果使用与提交者标识匹配的 GPG 密钥和与帐户 GitHub.com关联的已验证电子邮件地址，则可以开始对提交和签名标记进行签名。

1. 打开<span class="platform-mac">终端</span><span class="platform-linux">终端</span><span class="platform-windows">Git Bash</span>。

2. 使用 `gpg --list-secret-keys --keyid-format=long` 命令列出你拥有其公钥和私钥的长形式 GPG 密钥。 签名提交或标记需要私钥。

   ```shell copy
   gpg --list-secret-keys --keyid-format=long
   ```

   > \[!NOTE]
   > Linux 上的某些 GPG 安装可能需要改用 `gpg2 --list-keys --keyid-format LONG` 查看现有密钥的列表。 在这种情况下，还需要通过运行 `git config --global gpg.program gpg2` 来配置 Git 以使用 `gpg2`。

3. 从 GPG 密钥列表中复制您想要使用的 GPG 密钥 ID 的长形式。 在本例中，GPG 密钥 ID 为 `3AA5C34371567BD2`：

   ```shell copy
   $ gpg --list-secret-keys --keyid-format=long
   /Users/hubot/.gnupg/secring.gpg
   ------------------------------------
   sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
   uid                          Hubot <hubot@example.com>
   ssb   4096R/4BB6D45482678BE3 2016-03-10
   ```

4. 输入 `gpg --edit-key GPG key ID`，替换为你想要使用的 GPG 密钥 ID。 在以下示例中，GPG 密钥 ID 为 `3AA5C34371567BD2`：

   ```shell
   gpg --edit-key 3AA5C34371567BD2
   ```

5. 输入 `gpg> adduid` 以添加用户 ID 详细信息。

   ```shell
   gpg> adduid
   ```

6. 按照提示提供您的真实姓名、电子邮件地址和任何注释。 可以通过选择 `N`、`C` 或 `E` 来修改条目。

要将电子邮件地址保密，请使用 GitHub 提供的 `no-reply` 电子邮件地址。

有关详细信息，请参阅 [设置提交电子邮件地址](/zh/account-and-profile/how-tos/email-preferences/setting-your-commit-email-address)。

```shell
Real Name: OCTOCAT
Email address: "octocat@github.com"
Comment: GITHUB-KEY
Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit?
```

1. 输入 `O` 以确认你的选择。

2. 输入密钥的密码。

3. 输入 `gpg> save` 以保存更改

   ```shell
   gpg> save
   ```

4. 输入 `gpg --armor --export GPG key ID`，替换为你想要使用的 GPG 密钥 ID。 在以下示例中，GPG 密钥 ID 为 `3AA5C34371567BD2`：

   ```shell
   $ gpg --armor --export 3AA5C34371567BD2
   # Prints the GPG key, in ASCII armor format
   ```

5. 通过将 GPG 密钥添加到你的 GitHub 帐户中来上传。

## 其他阅读材料

* [检查现有 GPG 密钥](/zh/authentication/managing-commit-signature-verification/checking-for-existing-gpg-keys)
* [生成新 GPG 密钥](/zh/authentication/managing-commit-signature-verification/generating-a-new-gpg-key)
* [在 GPG 密钥中使用经过验证的电子邮件地址](/zh/authentication/troubleshooting-commit-signature-verification/using-a-verified-email-address-in-your-gpg-key)
* [将 GPG 密钥添加到GitHub帐户](/zh/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account)
* [对提交签名](/zh/authentication/managing-commit-signature-verification/signing-commits)
* [对标记签名](/zh/authentication/managing-commit-signature-verification/signing-tags)