Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
轮换 SSH 密钥
出于安全原因,我们推荐轮换 SSH 密钥的最佳安全实践。通常,此轮换被指定为安全策略的一部分,并以某种自动化的方式实现。根据安全级别,对于高度敏感的通信,SSH 密钥对可能只使用一次。这样做可以消除因存储密钥而导致的任何风险。但是,更常见的做法是将 SSH 凭证存储一段时间,并设置一个不会给用户带来过多负担的间隔。通常,时间间隔为 3 个月。
有两种方法用于执行 SSH 密钥轮换:
- Console
-
若要控制台中执行密钥轮换
-
打开 Amazon Transfer Family 控制台,网址为https://console.aws.amazon.com/transfer/。
-
导航至服务器页面。
-
选择服务器 ID 列中的标识符以查看服务器详细信息页面。
-
在用户下,选中要轮换其 SSH 公钥用户的复选框,然后选择操作,然后选择添加密钥以查看添加密钥页面。
或
选择用户名以查看用户详细信息页面,然后选择添加 SSH 公钥 以查看添加密钥页面。
-
输入新的 SSH 公钥并选择添加密钥。
SSH 公有密钥格式取决于您生成的密钥的类型。
-
RSA 密钥的格式为 ssh-rsa
string。
-
对于 ED25519 密钥,格式为ssh-ed25519
string。
-
对于 ECDSA 密钥,ecdsa-sha2-nistp256 字符串为 ecdsa-sha2-nistp384 或 ecdsa-sha2-nistp521,具体取决于您生成的密钥的大小。然后,先是 string,后跟开头字符串,这与其他秘钥类型类似。
您将返回用户配置屏幕,您刚刚输入的新 SSH 公钥将出现在 SSH 公钥部分。
-
选中要删除的旧密钥旁边的复选框,然后选择删除。
-
输入单词 delete 以确认删除操作,然后选择删除。
- API
-
若要使用 API 执行密钥轮换
-
在 macOS、Linux 或 Unix 操作系统,打开命令终端。
-
输入以下命令,以检索要删除的 SSH 密钥。若要使用此命令,请将 serverID 替换为您的 Transfer Family 服务器的服务器 ID,然后将 username 替换为您的用户名。
aws transfer describe-user --server-id='serverID' --user-name='username'
该命令返回有关此用户的详细信息。复制 "SshPublicKeyId": 字段的内容。您将需要稍后在此程序中输入此值。
"SshPublicKeys": [ { "SshPublicKeyBody": "public-key", "SshPublicKeyId": "keyID",
"DateImported": 1621969331.072 } ],
-
接下来,为您的用户导入新 SSH 密钥。在 提示符中,输入以下命令。若要使用此命令,请将 serverID 替换为您的 Transfer Family 服务器的服务器 ID,将 public-key 替换为您的用户名,并将 username 替换为新公钥的指纹。
aws transfer import-ssh-public-key --server-id='serverID' --user-name='username'
--ssh-public-key-body='public-key'
如果命令成功,则不返回任何输出。
-
最后通过运行以下命令删除旧密钥。若要使用此命令,将 serverID 替换为 Transfer Family 服务器的服务器 ID,将 username 替换为您的用户名,将 keyID-from-step-2 替换为您在此程序第 2 步中复制的秘钥 ID 值。
aws transfer delete-ssh-public-key --server-id='serverID' --user-name='username'
--ssh-public-key-id='keyID-from-step-2'
-
(可选)要确认旧密钥是否存在,请重复第 2 步。