AWS EC2 丢失密钥处理办法

  • A+
所属分类:系统管理

Amazon EC2密钥是创建EC2时必须下载。因为密钥是连接EC2实例的唯一途径。如果丢失了密钥,将无法登录服务器的。那么该如何处理呢?在这里介绍一下丢失EC2密钥时应该怎么操作。

EBS-Backed实例是可重新获得登录到Linux系统的权限。 ※instance store-backed实例不支持以下操作。

流程

  1. 停止EC2实例foraws
  2. Detach foraws实例的root Volume
  3. 把foraws实例的root Volume,Attach到别的Linux EC2实例
  4. 修改authorized_keys以后,Detach foraws实例的root Volume
  5. 把foraws的root Volume,Attach到foraws实例
  6. 重启foraws实例

步骤

确认Root Device类型

aws

记录以下信息

  • Amazon EC2 ID

aws

  • AMI ID

aws

  • EBS ID

aws

停止Amzon EC2实例(foraws)

aws

Detach foraws实例的root Volume

aws

等到Volume的State变为available。

把foraws的root Volume,Attach到另外一个Linux EC2实例(temp)上

  1. 确认temp实例在Stopped状态
  2. 把foraws实例的root Volume,Attach到temp实例

aws

提示

Marketplace镜像里启动的EC2,必须在停止的状态下进行Attach。EC2在Running状态下的话,会报以下错误。 Error attaching volume: Cannot attach volume ‘vol-1dd3500b’ with Marketplace codes as the instance ‘i-a5522e56’ is not in the ‘stopped’ state.Error attaching volume with Marketplace codes as the instance is not in the ‘stopped’ state.

在temp实例上挂载foraws实例的Volume以后修改authorized_keys

用lsblk命令查看Volume分区情况。

foraws的root Volume xvde没有被分区,所以mount时使用/dev/xvde,如果root Volume分区过的话,mount时,需指定/dev/xvde1。

用现在系统authorized_keys,覆盖foraws实例的authorized_keys文件。

停止temp实例,并Detach foraws实例的root Volume

aws

把Volume,Attach到foraws EC2实例

aws

instance选择foraws,Device填写/dev/sda(如果root Volume以进行分区的话,填写/dev/sda1)。
※Amazon EC2是把/dev/sda当作root Device的。

aws

确认Volume的State变为in-use之后,启动foraws实例,并进行登录就可以。在这里登录foraws实例时的密钥是,temp实例的密钥。

weinxin
微信公众号
扫一扫关注运维生存时间公众号,获取最新技术文章~

评论已关闭!

目前评论:3   其中:访客  3   博主  0

    • 春风十里 1

      另一个Linux EC2实例(temp)是从哪里来的?

      • cloud 9

        照此方法,果然解决问题 ,靠谱!

          • Winfield 1

            @cloud 你好,请问怎么获得另一个“Linux EC2 实例(temp)”?