

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 管理 PGP 密钥
<a name="manage-pgp-keys"></a>

要管理您的 PGP 密钥，请使用 AWS Secrets Manager。

**注意**  
您的秘钥名称包括 Transfer Family 服务器 ID。这意味着您应在 AWS Secrets Manager中存储 PGP 秘钥信息*之前*识别或创建服务器。

如果您想为所有用户使用同一个密钥和密码，则可以将 PGP 密钥区块信息存储在机密名称 `aws/transfer/server-id/@pgp-default` 下，其中 `server-id` 是 Transfer Family 服务器的 ID。如果没有与正在执行工作流程的用户`user-name`匹配的密钥，Transfer Family 将使用此默认密钥。

您可以为特定用户创建密钥。在本例中，密钥名称的格式为`aws/transfer/server-id/user-name`，其中`user-name`匹配正在为 Transfer Family 服务器运行工作流程的用户。

**注意**  
在每台 Transfer Family 服务器上，每位用户最多可存储 3 个 PGP 私钥。

**配置用户解密的 PGP 密钥**

1. 根据您使用的 GPG 版本，运行以下命令之一来生成 PGP key pair。
   + 如果您使用的是 **GnuPG** 版本为 2.3.0 或以上，请运行以下命令：

     ```
     gpg --full-gen-key
     ```

     您可以选择**RSA**，或者，如果选择**ECC**，则可以选择椭圆曲线**BrainPool**或**Curve25519**。**NIST**如果`gpg --gen-key`改为运行，则创建使用 ECC Curve 25519 加密算法的密钥对。
   + 对于 2.3.0 之前版本的 **GnuPG**，您可以使用以下命令，原因是 RSA 是默认的加密类型。

     ```
     gpg --gen-key
     ```
**重要**  
密钥生成过程中，您必须提供密码和电子邮箱地址。请务必记下这些值。在本过程的 AWS Secrets Manager 后面输入密钥详细信息时，必须提供密码。您必须提供相同的电子邮件地址才能在下一步中导出私钥。

1. 运行以下命令以导出私钥。要使用此命令，请将 `private.pgp` 替换为用于保存私钥块的文件名，并将 `marymajor@example.com` 替换为生成密钥对时使用的电子邮件地址。

   ```
   gpg --output private.pgp --armor --export-secret-key marymajor@example.com
   ```

1. <a name="store-pgp-key-details"></a>用于存储 AWS Secrets Manager 您的 PGP 密钥。

   1. 登录 AWS 管理控制台 并打开 AWS Secrets Manager 控制台，网址为[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

   1. 在左侧导航窗格中，选择**密钥**。

   1. 在**密钥**页面，选择**存储新密钥**。

   1. 在**选择密钥类型**页面上，为**密钥类型**选择**其他密钥类型**。

   1. 在**秘钥/值对**部分，选择**秘钥/值**选项卡。
      + **密钥** - 输入 **PGPPrivateKey**。
**注意**  
必须准确输入 **PGPPrivateKey** 字符串：切勿在字符前面或字符之间添加任何空格。
      + **值** — 将您的私钥文本粘贴至值字段。您可以在文件中找到私钥文本（例如 `private.pgp`），该文件是在您之前导出密钥时指定的文件。密钥开头为 `-----BEGIN PGP PRIVATE KEY BLOCK-----`，结尾为 `-----END PGP PRIVATE KEY BLOCK-----`。
**注意**  
确保文本块仅包含私钥，且不包含公钥。

   1. 选择**添加行**，然后在**秘钥/值对**部分选择**秘钥/值**选项卡。
      + **键** — 输入 **PGPPassphrase**。
**注意**  
必须准确输入 **PGPPassphrase** 字符串：切勿在字符前面或字符之间添加任何空格。
      + **值** – 输入您在生成 PGP 密钥对时使用的密码。  
![\[\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/pgp-secrets-01.png)
**注意**  
您最多可添加 3 组密钥和密码。若要添加第二组，请添加两行新行，为秘钥输入 **PGPPrivateKey2** 和 **PGPPassphrase2**，并粘贴至其他私钥和密码。若要添加第三组，秘钥值必须为 **PGPPrivateKey3** 和 **PGPPassphrase3**。

   1. 选择**下一步**。

   1. 在**配置密钥**页面，输入密钥的名称和描述。
      + 如果您要创建默认密钥，即可供任何 Transfer Family 用户使用的密钥，请输入 **aws/transfer/*server-id*/@pgp-default**。将 `server-id` 替换为包含解密工作流程服务器的 ID。
      + 如果您正在创建供特定 Transfer Family 用户使用的密钥，请输入 **aws/transfer/*server-id*/*user-name***。将 `server-id` 替换为包含解密工作流程服务器的 ID，将 `user-name` 更换为运行工作流程的用户名称。`user-name` 存储在 Transfer Family 服务器正在使用的身份提供程序。

   1. 选择**下一步**，接受**配置轮换**页面的默认设置。然后选择**下一步**。

   1. 在**审核**页面，选择**存储**以创建和存储密钥。

以下屏幕截图显示了指定 Transfer Family 服务器用户 **marymajor** 的详细信息。此示例显示三个密钥及其对应的密码。

![\[\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/pgp-secrets-02.png)
