別のアカウントからAMIを共有して起動した際に、OSによっては公開鍵をうまく変更できていないことがあるので、公開鍵を入れ替える方法についての備忘録
手順概要
- EC2からrootボリュームをデタッチ
- 別のEC2にrootボリュームをアタッチ
- rootボリュームをマウント
- 公開鍵の修正
- rootボリュームをアンマウント
- rootボリュームをデタッチ
- 元のEC2にrootボリュームをアタッチ
手順詳細
① EC2からrootボリュームをデタッチ
まずは、対象のEC2からrootボリュームをデタッチしますが、再度アタッチする際にデバイス名が必要となるのでデバイス名を控えておきます。
デバイス名を確認
対象ボリュームをデタッチする
② 他のEC2に対象のボリュームをアタッチする
③ 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にアタッチ
元のインスタンスを選択し、①で控えておいたデバイス名をセットする
⑥ 起動して接続確認
元のインスタンスを起動して、対象の秘密鍵でログイン可能かを確認する