创建密钥对
您可以使用 Amazon EC2 创建 RSA 或 ED25519 密钥对,或者可以使用第三方工具创建密钥对并将公有密钥导入 Amazon EC2。
有关在创建密钥对后使用 RDP 连接到您的 Windows 实例的步骤,请参阅连接到您的 Windows 实例。
使用 Amazon EC2 创建密钥对
当您使用 Amazon EC2 创建密钥对时,公有密钥将存储在 Amazon EC2 中,您需要存储私有密钥。
您可以使用 Amazon EC2 通过以下方法之一创建密钥对。
使用 Amazon CloudFormation 创建密钥对
当您使用 Amazon CloudFormation 创建新的密钥对时,私有密钥会保存到 Amazon Systems Manager Parameter Store。参数名称有以下形式:
/ec2/keypair/key_pair_id
有关更多信息,请参阅《Amazon Systems Manager 用户指南》中的 Amazon Systems Manager Parameter Store。
使用 Amazon CloudFormation 创建密钥对
-
在您的模板中指定 AWS::EC2::KeyPair 资源。
Resources: NewKeyPair: Type: 'AWS::EC2::KeyPair' Properties: KeyName: new-key-pair
-
按如下方式使用 describe-key-pairs 命令获取密钥对的 ID。
aws ec2 describe-key-pairs --filters Name=key-name,Values=
new-key-pair
--query KeyPairs[*].KeyPairId --output text下面是示例输出。
key-05abb699beEXAMPLE
-
按如下方式使用 get-parameter 命令获取密钥的参数,并将密钥材料保存在
.pem
文件中。aws ssm get-parameter --name /ec2/keypair/
key-05abb699beEXAMPLE
--with-decryption --query Parameter.Value --output text >new-key-pair.pem
所需的 IAM 权限
要启用 Amazon CloudFormation 以代表您管理 Parameter Store 参数,由 Amazon CloudFormation 或您用户担任的 IAM 角色必须拥有以下权限:
-
ssm:PutParameter
– 授予权限以创建私有密钥材料的参数。 -
ssm:DeleteParameter
– 授予权限以删除存储私有密钥材料的参数。无论密钥对是由 Amazon CloudFormation 导入还是创建的,都需要此权限。
当 Amazon CloudFormation 删除由堆栈创建或导入的密钥对时,它会执行权限检查,以确定您是否有权删除参数,即使 Amazon CloudFormation 仅在创建密钥对而非导入密钥对时才创建参数。Amazon CloudFormation 使用与您账户中的任何参数都不匹配的虚构参数名称测试所需的权限。因此,您可能会在 AccessDeniedException
错误消息中看到虚构的参数名称。
使用第三方工具创建密钥对,并将公有密钥导入 Amazon EC2
如果不使用 Amazon EC2 创建密钥对,您可以使用第三方工具创建一个 RSA 密钥对,然后将公有密钥导入 Amazon EC2。
密钥对的要求
-
支持的类型:RSA。Amazon EC2 不接受 DSA 密钥。
注意
Windows 实例不支持 ED25519 密钥。
-
支持的格式:
-
OpenSSH 公有密钥格式
-
SSH 私有密钥文件格式必须为 PEM 或 PPK
-
(仅 RSA)Base64 编码的 DER 格式
-
(仅 RSA)SSH 公有密钥文件格式如 RFC 4716
所指定
-
-
支持的长度:1024、2048 和 4096。
要使用第三方工具创建密钥对
-
使用您选择的第三方工具生成密钥对。例如,您可以使用 ssh-keygen(通过标准 OpenSSH 安装提供的工具)。或者,您可以使用 Java、Ruby、Python 和很多其他提供标准库的编程语言来创建 RSA 密钥对。
重要
私有密钥必须采用 PEM 或 PPK 格式。例如,使用
ssh-keygen -m PEM
生成 PEM 格式的 OpenSSH 密钥。 -
将公有密钥保存至本地文件。例如:
C:\keys\my-key-pair.pub
。此文件的文件扩展名并不重要。 -
将私有密钥保存至扩展名为
.pem
或.ppk
的本地文件。例如,C:\keys\my-key-pair.pem
或C:\keys\my-key-pair.ppk
。此文件的文件扩展名非常重要,因为从 EC2 控制台连接到 Windows 实例时只能选择.pem
文件。重要
将私有密钥文件保存在安全位置。当您启动实例时,您将需要提供公有密钥的名称;当您每次连接到实例时,您将需要提供相应的私有密钥。
创建密钥对后,使用以下方法之一将公有密钥导入到 Amazon EC2。