在 macOS、Linux 或 Unix 系统创建 SSH 密钥 - AWS Transfer Family

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

在 macOS、Linux 或 Unix 系统创建 SSH 密钥

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

注意

在以下示例中,我们未指定密码:在这种情况下,该工具会要求您输入密码,然后重复密码进行验证。创建密码可以更好地保护您的私钥,还可以提高系统整体安全性。您无法恢复密码:如果您忘记了密码,则必须创建新的密钥。

但是,如果要生成服务器主机密钥,则必须通过在命令中指定 -N "" 选项(或者在出现提示时按 Enter 两次)指定空密码,原因是 Transfer Family 服务器无法在启动时请求密码。

若要在 macOS、Linux 或 Unix 操作系统上创建 SSH 密钥
  1. 在 macOS、Linux 或 Unix 操作系统,打开命令终端。

  2. 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 服务器端点上传输文件时使用这些密钥。

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

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

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

    2. 服务器页面,选择包含要更新用户服务器的服务器 ID

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

    4. SSH 公钥窗格,选择添加 SSH 公钥

      AWS Transfer Family 控制台,显示选定用户的用户详细信息。
    5. 将您生成的公钥文本粘贴至 SSH 公钥文本框中,然后选择添加密钥

      AWS Transfer Family 控制台,显示用于添加公钥的 “添加密钥” 页面。

      新密钥列于 SSH 公钥窗格。

      AWS Transfer Family 控制台,在 SSH 公钥部分显示新添加的公钥。