

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

# 在 macOS、Linux 或 Unix 系统创建 SSH 密钥
<a name="macOS-linux-unix-ssh"></a>

在 macOS、Linux 或 Unix 操作系统中，您可以使用 `ssh-keygen` 命令创建 SSH 公钥和 SSH 私钥（也称为密钥对）。

**注意**  
在以下示例中，我们未指定密码：在这种情况下，该工具会要求您输入密码，然后重复密码进行验证。创建密码可以更好地保护您的私钥，还可以提高系统整体安全性。您无法恢复密码：如果您忘记了密码，则必须创建新的密钥。  
但是，如果要生成服务器主机密钥，则*必须*通过在命令中指定 `-N ""` 选项（或者在出现提示时按 **Enter** 两次）指定空密码，原因是 Transfer Family 服务器无法在启动时请求密码。

**若要在 macOS、Linux 或 Unix 操作系统上创建 SSH 密钥**

1. 在 macOS、Linux 或 Unix 操作系统，打开命令终端。

1. AWS Transfer Family 接受 RSA-、ECDSA-和 ED25519-格式的密钥。根据您生成的密钥对类型选择相应的命令。

   **提示**：`key_name`替换为 SSH 密钥对文件的实际名称。
   + 生成 RSA 4096 位密钥对：

     ```
     ssh-keygen -t rsa -b 4096 -f key_name
     ```
   + 若要生成 ECDSA 521 位密钥对（ECDSA 大小为 256、384 和 521），请执行以下操作：

     ```
     ssh-keygen -t ecdsa -b 521 -f key_name
     ```
   + 要生成 ED25519 密钥对，请执行以下操作：

     ```
     ssh-keygen -t ed25519 -f key_name
     ```

   下面是 `ssh-keygen` 输出的示例。

   ```
   ssh-keygen -t rsa -b 4096 -f key_name
   Generating public/private rsa key pair.
   
   Enter passphrase (empty for no passphrase): 
   Enter same passphrase again:
   Your identification has been saved in key_name.
   Your public key has been saved in key_name.pub.
   The key fingerprint is:
   SHA256:8tDDwPmanTFcEzjTwPGETVWOGW1nVz+gtCCE8hL7PrQ bob.amazon.com
   The key's randomart image is:
   +---[RSA 4096]----+
   |    . ....E      |
   | .   = ...       |
   |. . . = ..o      |
   | . o +  oo =     |
   |  + =  .S.= *    |
   | . o o ..B + o   |
   |     .o.+.* .    |
   |     =o*+*.      |
   |    ..*o*+.      |
   +----[SHA256]-----+
   ```

   **提示**：如上所示运行`ssh-keygen`命令时，它会将公钥和私钥创建为当前目录中的文件。

   您的 SSH 密钥对现已准备就绪，可以使用。按照步骤 3 和 4 为服务托管用户存储 SSH 公钥。这些用户在 Transfer Family 服务器端点上传输文件时使用这些密钥。

1. 导航到 `key_name.pub` 文件并打开它。

1. 复制文本并将其粘贴至服务托管用户的 **SSH 公钥**中。

   1. 打开 AWS Transfer Family 控制台 [https://console.aws.amazon.com/transfer/](https://console.aws.amazon.com/transfer/)，然后从导航窗格中选择 “**服务器**”。

   1. 在**服务器**页面，选择包含要更新用户服务器的**服务器 ID**。

   1. 选择要为其添加公钥的目标用户。

   1. 在 **SSH 公钥**窗格，选择**添加 SSH 公钥**。  
![\[AWS Transfer Family 控制台，显示选定用户的用户详细信息。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/edit-user-add-key-01.png)

   1. 将您生成的公钥文本粘贴至 SSH 公钥文本框中，然后选择**添加密钥**。  
![\[AWS Transfer Family 控制台，显示用于添加公钥的 “添加密钥” 页面。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/edit-user-add-key-02.png)

      新密钥列于 SSH 公钥窗格。  
![\[AWS Transfer Family 控制台，在 SSH 公钥部分显示新添加的公钥。\]](http://docs.aws.amazon.com/zh_cn/transfer/latest/userguide/images/edit-user-add-key-03.png)