我使用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。