EC2のキーペアを、.sshディレクトリの中に保管するべきところを別のディレクトリに入れたままにして、誤って消してしまったことはありませんか?(私はありました…焦りまくりました…)
もしかしてEC2の構築の最初っからやらないといけないの…と戦慄していましたが、心配ご無用です。なんと方法があります!私はこれにて無事でした。同じ境遇になってしまった方に届けば幸いです。
環境
linux/MacOS 使用
1.新しいキーペアを作成
まずは焦らず新しくキーペアを作成していきましょう。
他に既存のキーペアがあり、そちらを利用する場合はこの工程はスキップしてもらっても大丈夫です。
【手順】
マネジメントコンソール
→EC2 コンソールへ移動
→左側メニュー内 ネットワーク&セキュリティ
→キーペア
今回「test」と名前をつけましたが、キーペアの名前はプロジェクトに応じて好きにつけてください。
⚠️名前に空白は作らない方が後々やりやすくなると思います。
⚠️どうしても単語を複数入れたい場合は単語を繋げた名前にするか、"-(ハイフン)"を使ってください。
例)projecttest、project-test
※個人的には単語を繋げた方が、後にコマンドを打つことがあった際楽だと思います。
- [キーペアを作成]までいくと、pemファイルがダウンロードされます。
適当な場所に移動させ、適切な権限を設定します。
$ mv xxxxx.pem ~/.ssh/ # .sshにpemファイル移動
$ chmod 400 ~/.ssh/xxxxx.pem # 所有者にだけ読み取り権限を付与する
2.公開キーを作成する
.sshディレクトリにて、下記コマンドを実行
$ ssh-keygen -y -f ~/.ssh/xxxxx.pem
出てきた長い文字列が、test.pemの公開キーになります。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUaVyi/HYbDvBfT2BC4KJyWwaVfk3n1NwpLItcl57mSTOmCYhLIl4oitRC4zab50RTMuGfixJJY1OAdtZaxvMuCwcUTRGAuq8763rmyjTNdSYFQfdMwd2Ss7TdeFaAw1SPx4dBOe95VVRUBCQEWJUlYjLc7v/hxvcaH7gPVAwQK3GsWkdCLUMn3N1bbKrNVK3VjOP5YVwjKMnPkAmaKnHuYhbgeE9dQGAymkqrgwUdk3gr1lQ8MLHLGjU2sK7W46TAWkz59ZLgG4T3c8LLJhJaM9HSM8HrRuOWCyaxpUgku7QSqmUX4NZHkMooKZPxzz8E8oTE5CPBg9toi6yLkWqz
この公開キーは後に使うのでコピーします。
※冒頭のssh-rsaも公開キーに含まれます。
※公開キーはキーごとに異なります。
3.EC2インスタンスのユーザーデータを変更する
【手順】
紛失したキーペアを利用しているEC2インスタンスを 停止
→右上のアクションを選択
→インスタンスの設定
→ユーザーデータを編集(完全に停止ができたら触れるようになる)
このページに移動します。
既に何かここに設定をしている人は、混ざらないように一旦別のところに避けておいてください。
- 下記スクリプトを貼り付け
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
- name: username
ssh-authorized-keys:
- PublicKeypair
下から3段目のusernameと
一番下の段のPublicKeypair
を自分のものに修正し変更。
例)
username → ec2-user
PublicKeypair → 先程作った公開キー
【手順】
インスタンスを起動
→起動できたら、新しいキーペアを使ってssh接続できるか確認
ssh -i ~/.ssh/xxxxx.pem ec2-user@xxx.xxx.xxx.xxx
ssh接続ができていれば成功です!🎉
その後
【手順】
インスタンスを停止
→先ほど貼り付けたスクリプトを公開キーを含め全て削除
→(ユーザーデータに元々何か設定をしていた場合は貼り付け)
→保存をクリック
→インスタンスを起動
これでOK!これで万が一キーペアを紛失してしまった…なんてことが起こっても対処できます。
でもまずは、無くさないようにしっかり管理をしていきましょう。自戒を込めて。