β

AWS EC2 丢失密钥处理办法

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分区情况。

# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdj 202:144  0   8G  0 disk /
xvde 202:64   0   8G  0 disk

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

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvde       7.9G  651M  6.9G   9% /
tmpfs           296M     0  296M   0% /dev/shm
# mkdir /mnt/tmp
# mount /dev/xvde /mnt/tmp
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvde       7.9G  651M  6.9G   9% /
tmpfs           296M     0  296M   0% /dev/shm
/dev/xvde       7.9G  650M  6.9G   9% /mnt/tmp

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

# cp -p /root/.ssh/authorized_keys /mnt/tmp/root/.ssh/authorized_keys
# cd
# umount /mnt/tmp
# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvde       7.9G  651M  6.9G   9% /
tmpfs           296M     0  296M   0% /dev/shm

停止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实例的密钥。

您可以选择一种方式打赏本站

支付宝转账赞助

支付宝扫一扫打赏

微信钱包扫描打赏

作者:运维生存时间 - 运维生存时间
Linux系统教程,运维经验分享
原文地址:AWS EC2 丢失密钥处理办法, 感谢原作者分享。

发表评论