即使使用正确的私钥,Windows密码也不会在AWS EC2上解密


21

我使用通过从本地计算机上载公钥而创建的密钥对,在AWS EC2上创建了一个新的Windows实例。

该实例启动正常,但不会解密密码。它报告:

私钥必须以“ ----- BEGIN RSA PRIVATE KEY -----”开头,并以“ ----- END RSA PRIVATE KEY -----”结尾。

我确定我上传了正确的密钥。我已验证指纹是否与AWS使用的怪异指纹格式匹配。但是它不会解密。

我尝试上传密钥文件,并将其粘贴到表单中。

我最终发现它不会剥离尾随的换行符,并删除了键中的空白行。但是,当我单击“解密密码”时,这使我遇到了一个新错误:

解密密码时出错。 请确保您正确输入了私钥。

Answers:


22

AWS EC2的密钥管理无法处理已设置密码(已加密)的SSH私钥。它不会检测到此错误,只会失败,并显示错误信息。

如果您的私钥以加密方式存储在磁盘上(应该是IMO),则必须对其进行解密以将其粘贴到AWS控制台中。

与其这样做,不如考虑在本地解密密码,因此您不必将私钥发送到AWS。启动后或使用get-password-data或相应的API请求从服务器日志中获取加密的密码数据(以base64编码)。

然后,您可以对结果进行base64解码和解密:

base64 -d /tmp/file | openssl rsautl -decrypt -inkey /path/to/aws/private/key.pem

(OpenSSH私钥被接受openssl rsautl)。

无法处理带有有用错误的受密码保护的密钥的问题也会影响ec2-get-password命令

也可以看看:


1
谢谢。根据您的建议,这是我使用的完整命令行:( aws ec2 get-password-data "--instance-id=${instance_id}" | jq -r .PasswordData | base64 -D | openssl rsautl -decrypt -inkey ${my_key} 使用aws-clijq)。
Ben Butler-Cole

BASE64抱怨-d这样-D对我的作品。在OS X上即时通讯
Saad Masood

2
在OS X中,我将向该管道添加另一个命令:aws ec2 get-password-data "--instance-id=${instance_id}" | jq -r .PasswordData | base64 -D | openssl rsautl -decrypt -inkey ${my_key} | pbcopy ...,它将密码直接发送到剪贴板。
Mark Maglana '16

1
这应该标记为正确答案恕我直言。由于与该答案相比,其他答案有点不安全
webofmars

4

在不使用jq的情况下,这仍然可行,但是需要对返回的数据进行一些额外的分析。

aws ec2 get-password-data "--instance-id=${instance_id}" --query 'PasswordData' | sed 's/\"\\r\\n//' | sed 's/\\r\\n\"//' | base64 -D | openssl rsautl -inkey ${my_key} -decrypt

在WSL Ubuntu上工作得很好,我不得不使用base64 -d而不是-D
塞斯·斯通

3

这是在macOS中对我有用的东西:

openssl rsa -in $HOME/.ssh/aws-remote -out /Users/home/desktop/unencrypted-rsa.txt

值得注意的是,您可以通过查找以下行来判断您的.pem文件是否已使用密码加密。如果存在,则需要先将其解密,然后再与Amazon结合使用:

Proc-Type: 4,ENCRYPTED

对我来说,这就是解决方案。AWS UI不会检测到密钥受密码短语保护,因此您需要先对其进行解密。但是,这有点不安全。因此,之后请删除解密的文件。
webofmars

2

在我的Mac上,base64的命令行参数是不同的。

这为我工作:

base64 -D -i /tmp/file | openssl rsautl -decrypt -inkey /path/to/key.pem

-1
  1. 前往ec2资讯主页
  2. 删除现有密钥
  3. 创建一个新的密钥对
  4. 选择一个名字
  5. 下载并保存在本地
  6. 启动实例并下载Windows实例的副本
  7. 使用在步骤4中使用的名称来命名新的密钥对
  8. 使用此新生成的密钥解密密码

这会工作


1
是的,它将起作用。但这也有一点很重要-我在解释您上载本地密钥的情况。
克雷格·林格
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.