如果丢失我的.pem文件,如何从aws.amazon.com检索密码?

时间:2017-04-17 10:28:43

标签: amazon-web-services encryption amazon-s3 amazon-ec2

我想使用远程桌面登录aws.amazon.com。因为这需要用户的密码。我正在尝试登录,但由于某些证券更改已经从AWS端进行。所以它无法正常工作。现在要获取密码我需要pem文件,但是我的客户端错放了它。

我已尝试Resetting an Administrator password获取Instance.But在步骤5-d中阻止我执行此操作。我已附加屏幕截图。

enter image description here

另外我认为可以将指纹密钥转换为RSA PRIVATE KEY吗?因为我有指纹密钥。如果我找到了RSA密钥,那么我可以解密密码。可以使用任何在线创建方法吗?

尽管没有获取密码,但尝试创建新的实例并附加旧卷磁盘。 enter image description here 有人面临同样的问题吗?如果您有任何解决方案,请告诉我。 在此先感谢。

2 个答案:

答案 0 :(得分:4)

啊!如果最初启动实例的AMI已被弃用(已过期),则该文档化过程将无法正常工作。

对于第5步,只需从EC2管理控制台的 AMIs 部分选择您的AMI,然后从“操作”菜单中选择启动命令。这将允许您使用您创建的AMI启动新计算机。确保选择具有.pem文件的新密钥对。

然后,从第6步继续。一般步骤是:

  • 停止原始实例
  • 分离启动盘("磁盘A")
  • 启动另一个Windows实例(或使用您已有权访问的实例)
  • 将磁盘A附加到第二个实例
  • 更新磁盘A上的\Program Files\Amazon\Ec2ConfigService\Settings\config.xml文件,并将Ec2SetPassword参数更新为Enabled(请参阅该文档页面上的步骤9)
  • 从第二个实例中分离磁盘A并将其重新连接到原始实例(从文档页面的步骤5开始)
  • 启动原始实例并尝试登录

答案 1 :(得分:3)

我购买了开发者支持并找到了解决方案。所以我想我应该在这里分享一下,这也可以节省你的钱。

下面列出了重置密码的另一种方法。

使用SSM [1]

  • 首先,我们创建了新的“恢复”IAM角色,添加了AmazonEC2RoleforSSM政策

  • 在实例上直接将该规则应用于您的实例,然后单击“实例设置”,然后单击“附加/替换IAM角色”。注意您可能需要在规则应用之前重新启动。

重置本地管理员密码:

  1. https://console.aws.amazon.com/ec2/
  2. 打开Amazon EC2控制台

    2.在页面左侧,单击“文档”,然后单击“创建文档”,将以下JSON脚本粘贴到“内容”中。然后单击页面右下角的蓝色“创建文档”按钮。

    {
        "schemaVersion": "1.2",
        "description": "Changes the local administrator password.",
        "parameters": {
            "Password": {
                "type": "String",
                "default": "",
                "description": "(Required) The new password for the local administrator account."
            }
        },
        "runtimeConfig": {
            "aws:runPowerShellScript": {
                "properties": [
                    {
                        "id": "0.aws:runPowerShellScript",
                        "timeoutSeconds": 60,
                        "runCommand": [
                            "",
                            "Function Reset-AdminPassword {",
                            "  Param (",
                                                    "    [Parameter(Mandatory=$true)]",
                                                    "    [string]$Password",
                                                    "  )",
                                                    "",
                                                    "  $computer = [ADSI]\"WinNT://$($env:computername)\"",
                                                    "  $users = $computer.psbase.Children | Where-Object {$_.psbase.schemaclassname -eq 'user'}",
                                                    "  foreach ($user in $users) {",
                                                    "    $userObject = New-Object System.Security.Principal.NTAccount($user.Name)",
                                                    "    $userSID = $userObject.Translate([System.Security.Principal.SecurityIdentifier])",
                                                    "    if(($userSID.Value.Substring(0,6) -eq 'S-1-5-') -and ($userSID.Value.Substring($userSID.Value.Length-4, 4) -eq '-500')) {",
                                                    "      $user.SetPassword($Password)",
                                                    "      Write-Host \"Successfully changed the password for $($user.Name).\"",
                                                    "    }",
                                                    "  }",
                                                    "}",
                            "",
                            "Reset-AdminPassword -Password {{ Password }}"
                        ]
                    }
                ]
            }
        }
    }
    
    1. 在EC2管理控制台的左侧,选择“运行命令”,然后单击蓝色的“运行命令”按钮。从“命令文档”下的列表中选择我们之前创建的文档。
    2. 在“目标实例”下,选择要为其重置密码的实例。
    3. 您应该可以在“密码”字段中输入密码。
    4. 点击屏幕右下角的蓝色“运行”按钮。
    5. 在下一页上,您会看到一个绿色的“成功”框,显示命令ID。您可以使用此命令ID通过单击命令或通过在“运行命令”部分下搜索此命令ID来跟踪命令所做的更改。