我使用 ssh-keygen 创建了一个密钥对并获得了两个经典的 id_rsa 和 id_rsa.pub。
我将公钥导入我的 AWS EC2 账户。
现在我创建了一个 Windows 实例并解密该实例密码,AWS 控制台要求我提供一个 .pem 文件。如何从我的两个 id_rsa 和 id_rsa.pub 文件中获取该 .pem 文件?
我使用 ssh-keygen 创建了一个密钥对并获得了两个经典的 id_rsa 和 id_rsa.pub。
我将公钥导入我的 AWS EC2 账户。
现在我创建了一个 Windows 实例并解密该实例密码,AWS 控制台要求我提供一个 .pem 文件。如何从我的两个 id_rsa 和 id_rsa.pub 文件中获取该 .pem 文件?
根据this,可以使用此命令:
这会将您的公钥转换为与 OpenSSL 兼容的格式。您的私钥已经采用 PEM 格式,可以按原样使用(如 Michael Hampton 所述)。
仔细检查 AWS 是否不要求 PEM 格式的 (X.509)证书,这与您的 SSH 密钥不同。
使用
ssh-keygen
以 .pem 格式导出密钥对我有用。然后根据需要简单地复制
.pem
密钥。选项如下:(见
man ssh-keygen
)-f id_rsa.pub
: 输入文件-m 'PEM'
: 输出格式 PEM-e
: 输出到 STDOUT最初,在使用 时
ssh-keygen
,我可以生成与 AWS EC2 兼容的公钥,但在创建兼容的私钥时遇到了问题。以下创建与 AWS EC2 兼容的公钥和私钥对。以下是每个参数的信息:
资源:
有关 ssh-keygen 的更多信息,请参阅: https ://man.openbsd.org/ssh-keygen.1
AWS - EC2 密钥对 - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html
id_rsa
是您必须用来解密 Windows EC2 实例密码的文件,但只需确保您复制粘贴的文件不受短语保护。我解决了获取临时不受保护的
id_rsa
文件的问题,例如:当您启动 EC2 实例时,您为其分配密钥对(或不分配)。之后无法更改。
只有使用该密钥对中的 .pem 文件,您才能解密 Windows 密码。
.pem 文件将在创建密钥对时下载。你不能再得到它。如果你失去了它,那你就不走运了。
您不能使用自己生成的 .pem 文件,除非您在启动实例之前将该密钥导入 AWS 并将其分配给实例。
简而言之,如果您没有原始的 .pem 文件,则无法获取密码。
编辑:重新阅读问题后,我意识到 OP 已将他的密钥导入 AWS。
在您的服务器上添加您的公钥到
authorized_keys
或者您可以使用服务器中的文本编辑器手动添加它。
在您的服务器中复制您的私钥
现在在您的客户端 PC 中,从服务器下载密钥