1
0
この記事誰得? 私しか得しないニッチな技術で記事投稿!
Qiita Engineer Festa20242024年7月17日まで開催中!

pemキーを紛失した際の再発行方法とECSインスタンスに接続する方法

Last updated at Posted at 2024-07-08

概要

現在進行中の案件(2024/07/08)で、負荷試験を行う為に過去に使用したEC2インスタンスを利用する必要がありました。しかし、公開鍵および秘密鍵が存在しない為、サーバーに接続できないという問題が発生しました。この問題を解決しないとデプロイが行えず、検証が進められません。そこで、表題にも記載した通り、pemキーを紛失した際の再発行方法とECSインスタンスに接続する方法で負荷試験が行える環境を作成したので、その方法について備忘録も兼ねて記載します。

事前準備

  • EC2インスタンスが立ち上がっている

手順

pemキー作成

pemキーを下記の画像の設定にて作成する

キーペア作成.png

ローカル環境に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を事前に停止しておく

ec2の詳細画面.png

  • テンプレートを貼った後、[name]と[ssh-authorized-key]を埋めて保存する
    (ユーザーデータに貼り付けるフォーマットは、下記に記載)

ユーザーデータを編集.png

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

参考資料

まとめ

色々と手間が多いですが、EC2を使った何らかの作業を行うと、Linuxについて詳しくなれたので、満足しております。この調子て、Linuxの知識や知見を増やしていきたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0