我在 AWS EC2 上创建了一个新的 Windows 实例,使用我通过从本地机器上传我的公钥创建的密钥对。
该实例启动正常,但它不会解密密码。它报告:
我确定我上传了正确的密钥。我已经验证指纹与 AWS 使用的奇怪指纹格式匹配。但它只是不会解密。
我已经尝试上传密钥文件,并将其粘贴到表单中。
我最终发现它没有删除尾随换行符,并删除了键中的空白行。但是,当我单击“解密密码”时,这只会让我遇到一个新错误:
我在 AWS EC2 上创建了一个新的 Windows 实例,使用我通过从本地机器上传我的公钥创建的密钥对。
该实例启动正常,但它不会解密密码。它报告:
我确定我上传了正确的密钥。我已经验证指纹与 AWS 使用的奇怪指纹格式匹配。但它只是不会解密。
我已经尝试上传密钥文件,并将其粘贴到表单中。
我最终发现它没有删除尾随换行符,并删除了键中的空白行。但是,当我单击“解密密码”时,这只会让我遇到一个新错误:
AWS EC2 的密钥管理无法处理设置了密码(加密)的 SSH 私钥。它没有检测到这一点,并且只是失败并出现无意义的错误。
如果您的私钥以加密方式存储在磁盘上(应该是,IMO),您必须将其解密以将其粘贴到 AWS 的控制台中。
与其这样做,不如考虑在本地解密密码,这样您就不必将私钥发送到 AWS。启动后从服务器日志中获取加密后的密码数据(base64 编码),或者使用get-password-data或相应的 API 请求。
然后,您可以对结果进行 base64 解码和解密:
(OpenSSH 私钥被 接受
openssl rsautl
)。无法使用有用错误处理受密码保护的密钥的问题也会影响
ec2-get-password
命令。也可以看看:
这在 macOS 中对我有用:
openssl rsa -in $HOME/.ssh/aws-remote -out /Users/home/desktop/unencrypted-rsa.txt
请注意,您可以通过查找以下行来判断您的 .pem 文件是否使用密码加密。如果存在,您需要在将其与 Amazon 一起使用之前对其进行解密:
如果不使用 jq,这仍然是可能的,但需要对返回的数据进行一些额外的解析。
在我的 Mac 上,base64 的命令行参数是不同的。
这对我有用:
最直接的选项在于上面发布的get-password AWS 文档链接:
另外,请考虑到这一点:
这会起作用