AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 603984
Accepted
Craig Ringer
Craig Ringer
Asked: 2014-06-10 20:44:36 +0800 CST2014-06-10 20:44:36 +0800 CST 2014-06-10 20:44:36 +0800 CST

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

  • 772

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

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

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

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

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

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

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

windows
  • 6 6 个回答
  • 15972 Views

6 个回答

  • Voted
  1. Best Answer
    Craig Ringer
    2014-06-10T20:44:36+08:002014-06-10T20:44:36+08:00

    AWS EC2 的密钥管理无法处理设置了密码(加密)的 SSH 私钥。它没有检测到这一点,并且只是失败并出现无意义的错误。

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

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

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

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

    (OpenSSH 私钥被 接受openssl rsautl)。

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

    也可以看看:

    • EC2 Windows - 获取管理员密码
    • 使用 OpenSSL 解密密码
    • AWS 论坛上的错误报告- 请加入。
    • 27
  2. Django Reinhardt
    2018-05-14T09:47:05+08:002018-05-14T09:47:05+08:00

    这在 macOS 中对我有用:

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

    请注意,您可以通过查找以下行来判断您的 .pem 文件是否使用密码加密。如果存在,您需要在将其与 Amazon 一起使用之前对其进行解密:

    Proc-Type: 4,ENCRYPTED
    
    • 5
  3. Ben
    2016-04-01T11:15:39+08:002016-04-01T11:15:39+08:00

    如果不使用 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
    
    • 4
  4. Dan
    2015-10-14T10:25:34+08:002015-10-14T10:25:34+08:00

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

    这对我有用:

    base64 -D -i /tmp/file | openssl rsautl -decrypt -inkey /path/to/key.pem
    
    • 2
  5. Felipe Zipitria
    2021-01-27T04:59:39+08:002021-01-27T04:59:39+08:00

    最直接的选项在于上面发布的get-password AWS 文档链接:

    aws ec2 get-password-data --instance-id  i-1234567890abcdef0 --priv-launch-key C:\Keys\MyKeyPair.pem
    

    另外,请考虑到这一点:

    重要的

    私钥必须采用 PEM 格式。例如,使用 ssh-keygen -m PEM 生成 PEM 格式的 OpenSSH 密钥。

    • 1
  6. Arun Mohan
    2018-09-22T00:33:13+08:002018-09-22T00:33:13+08:00
    1. 转到 ec2 仪表板
    2. 删除现有密钥
    3. 创建一个新的密钥对
    4. 选择一个名字
    5. 下载并保存在本地
    6. 启动实例并下载您的 Windows 实例副本
    7. 使用步骤 4 中使用的名称命名新的密钥对
    8. 使用这个新生成的密钥来解密密码

    这会起作用

    • -1

相关问题

  • 知道任何适用于 Windows 的快速可编写脚本的 ftp 客户端吗?[关闭]

  • 如果 Windows 服务崩溃,如何自动重新启动它?

  • 无法安排任务(访问被拒绝)

  • 物理机重启时自动重启虚拟机(VMWare)

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve