EC2の鍵を入れ替える手順【cloudpack 大阪 BLOG】

別のアカウントからAMIを共有して起動した際に、OSによっては公開鍵をうまく変更できていないことがあるので、公開鍵を入れ替える方法についての備忘録

手順概要

  • EC2からrootボリュームをデタッチ
  • 別のEC2にrootボリュームをアタッチ
  • rootボリュームをマウント
  • 公開鍵の修正
  • rootボリュームをアンマウント
  • rootボリュームをデタッチ
  • 元のEC2にrootボリュームをアタッチ

手順詳細

① EC2からrootボリュームをデタッチ

まずは、対象のEC2からrootボリュームをデタッチしますが、再度アタッチする際にデバイス名が必要となるのでデバイス名を控えておきます。

デバイス名を確認
f:id:cloudfish:20160410170203p:plain

対象ボリュームをデタッチする
f:id:cloudfish:20160410170208p:plain

② 他のEC2に対象のボリュームをアタッチする

f:id:cloudfish:20160410170213p:plain

③ rootボリュームをマウント

別のEC2(起動していなかったら起動する)にログインし下記コマンドを実行する

ボリュームの確認

# lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvdf    202:80   0  50G  0 disk
└─xvdf1 202:81   0  50G  0 part       ←対象ボリュームが認識されている
xvda1   202:1    0  50G  0 disk /

マウント用のディレクトリを作成する

# mkdir -p /mnt/ebs/0

マウントする

# mount /dev/xvdf1 /mnt/ebs/0

③ 対象ユーザーの公開鍵(authorized_key)を修正

ログインするための公開鍵をセットする

# vim /mnt/ebs/0/home/target_user/.ssh/authorized_keys

必要に応じてsshd_configを修正

# vim /mnt/ebs/0/etc/ssh/sshd_config

③ 対象ボリュームをアンマウント

# umount /mnt/ebs/0/

④ 対象ボリュームをデタッチ

手順①と同様にデタッチする

⑤ 元のEC2にアタッチ

元のインスタンスを選択し、①で控えておいたデバイス名をセットする
f:id:cloudfish:20160410175007p:plain

⑥ 起動して接続確認

元のインスタンスを起動して、対象の秘密鍵でログイン可能かを確認する