如何从SSH密钥对获取.pem文件?

我使用ssh-keygen创build了一个密钥对,并获得了两个clasic id_rsa和id_rsa.pub。

我将公钥导入了我的AWS EC2帐户。

现在我创build了一个Windows实例,并解密该实例的密码,AWS控制台正在问我一个.pem文件。 我怎样才能从我的两个id_rsa和id_rsa.pub文件获得.pem文件?

据此可以使用这个命令:

ssh-keygen -f id_rsa -e -m pem 

这会将您的公钥转换为兼容OpenSSL的格式。

请仔细检查AWS是否不要求PEM格式的(X.509) 证书 ,这与SSH密钥不同。

使用ssh-keygen导出.pem格式的密钥为我工作。

 ssh-keygen -f id_rsa.pub -m 'PEM' -e > id_rsa.pem 

然后根据需要简单地复制.pem键。

以供参考:

  • -f id_rsa.pub部分表示要从中读取的input文件
  • -m 'PEM表示一个PEM文件types
  • -e选项表示输出将被导出

id_rsa是您必须用来解密Windows EC2实例密码的文件,但只要确保复制粘贴的文件不受短语保护。

我解决了这个问题得到一个临时不受保护的id_rsa文件类似于:

 $ openssl rsa -in ~/.ssh/id_rsa -out tmp_file.pem 

当你启动一个EC2实例时,你为它分配一个密钥对(或者没有)。 之后不能更改。

只有使用该密钥对中的.pem文件才能解密Windows密码。

当创build密钥对时,.pem文件将被下载。 你不能再得到它。 如果你失去了它,你是不走运的。

您不能使用自己生成的.pem文件,除非在实例启动之前将该密钥导入AWS并将其分配给实例。

简单地说,如果你没有原始的.pem文件,你将无法获得密码。

编辑:重读这个问题后,我意识到OP已经把他的密钥导入AWS。