概要
現在進行中の案件(2024/07/08)で、負荷試験を行う為に過去に使用したEC2インスタンスを利用する必要がありました。しかし、公開鍵および秘密鍵が存在しない為、サーバーに接続できないという問題が発生しました。この問題を解決しないとデプロイが行えず、検証が進められません。そこで、表題にも記載した通り、pem
キーを紛失した際の再発行方法とECSインスタンスに接続する方法で負荷試験が行える環境を作成したので、その方法について備忘録も兼ねて記載します。
事前準備
- EC2インスタンスが立ち上がっている
手順
pemキー作成
pemキーを下記の画像の設定にて作成する
ローカル環境にpemキーの設置と公開鍵の取得
-
pem
キーを.ssh
ディレクトリーに設置
(コマンドで行う場合は、下記のコマンドを実行する)
mv ~/.pemが設置されている場所のファイルパス/your-key.pem ~/.ssh/
-
.ssh
ディレクトリに移動
cd ~/.ssh
-
pem
の権限を変更する
chmod 400 your-key.pem
- 既存の
.pem
ファイルから公開鍵を抽出
ssh-keygen -y -f ~/.ssh/your-key.pem
# 表示内容
# 下記の内容を控えておく
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...W6q5P7
-
ssh-keygen
: SSH鍵ペア(秘密鍵と公開鍵)を生成する為のコマンド -
-y
: 秘密鍵から公開鍵を出力するv -
-f ~/.ssh/your-key.pem
: 鍵ファイルの名前と保存場所を指定 -
~
: ホームディレクトリを示す
EC2にユーザーデータを設定
- EC2の詳細画面から[ユーザーデータを編集]の画面を開く
※ EC2を事前に停止しておく
- テンプレートを貼った後、[name]と[ssh-authorized-key]を埋めて保存する
(ユーザーデータに貼り付けるフォーマットは、下記に記載)
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: 任意の名前(EC2で使用出来るユーザーに限る)
ssh-authorized-keys:
- 公開鍵を記載
EC2にアクセス出来る様にする為の設定
-
ssh
コマンドにて、EC2
インスタンスに接続する
# 構文
ssh -i "pemキー" ユーザー名@ec2-IPアドレス.リージョン.compute.amazonaws.com
#入力例
ssh -i "your-key.pem" ec2-user@ec2-00-000-00-00.ap-northeast-1.compute.amazonaws.com
- ログインさせたいユーザのディレクトリに移動し、
.ssh
の中身を確認する
cd /home/ユーザー名/
cd .ssh/
# .sshまで一気に移動
cd /home/ユーザー名/.ssh
# 全てのファイルとディレクトリを表示
ls -a
# ls : ディレクトリの内容をリスト表示
# -a : 全てのファイルとディレクトリを表示(隠しファイルも含める)
-
authorized_keys
にローカル環境で生成した公開鍵の中身を貼り付ける
※ 末尾にpemキーの名前を書く事で、何の公開鍵かわかる為、オススメ
※ 別の公開鍵が既に登録されている場合は、改行して新しく生成した公開鍵を貼り付ける
vim authorized_keys
# 生成した公開鍵を貼り付ける
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ...W6q5P7 your-key-comment # ← pemキーの名前を書いておく
-
EC2
から抜ける ([control] + [c]でも可能)
exit
-
EC2
インスタンスを停止 - [ユーザーデータを編集]の画面で登録したユーザーデータの内容を消去して保存する
- 再度、
EC2
を起動して、ssh
コマンドを使用して、ログインしたいユーザでEC2
にアクセスする
# 構文
ssh -i "pemキー" ユーザー名@ec2-IPアドレス.リージョン.compute.amazonaws.com
参考資料
- [AWS公式] 最初の起動後に SSH キーペアを紛失した場合、Amazon EC2 インスタンスに接続する方法を教えてください
- キーペアを紛失または削除してしまい EC2 インスタンスに接続出来なくなった際の復旧方法
- EC2のキーペアを紛失した時の簡単な対処法
まとめ
色々と手間が多いですが、EC2を使った何らかの作業を行うと、Linux
について詳しくなれたので、満足しております。この調子て、Linux
の知識や知見を増やしていきたいです。