見出し画像

EC2で秘密鍵をなくしたときの対策

EC2へSSHで接続する際に利用する秘密鍵をなくしたときは以下のページを
見ながら新しい秘密鍵を登録するかと思います。
方法1を実際に試して素直にいかなかったので備忘として記述します。

1.キーペアの作成

  1. EC2のダッシュボードを表示して左のメニューから「ネットワーク&セキュリティ - キーペア」の画面を表示する。

  2. 右上の「キーペアを作成」ボタンをクリックする。

  3. 名前などの項目を入力/選択して「キーペアを作成」ボタンをクリックする。
    この時キーペアのタイプは「ED25519」を選択する。※理由は後述。
    ファイル形式はどちらでもよくWinSCPのようなツールを利用している場合は「.ppk」の方が扱いやすい。

キーペアの作成画面

4.新しい秘密鍵が自動でダウンロードされている。

2.公開鍵の取得

ssh-keygenコマンドやWinSCPなどのツールから公開鍵を取得する。
ここではWinSCPを利用する。

  1. 「puttygen.exe」を起動する。
    デフォルトの場所にWinSCPをインストールしていれば
    「C:\Program Files (x86)\WinSCP\PuTTY」にある。

  2. 「Load」ボタンをクリックしてダウンロードされた秘密鍵を指定する。

puttygen.exe

3.一番上にある「Public Key for・・・」に表示されている文字列をコピーする。

3.EC2インスタンスの停止

通常通り対象のEC2インスタンスを選択して「インスタンスの状態」から
停止する。

4.ユーザーデータの設定

  1. 対象のEC2インスタンスを選択する。

  2. 右上の「アクション」から「インスタンスの設定 - ユーザーデータを編集」をクリックする。

  3. 画面の下側にあるテキストボックスに下記の内容を転記して
    name(EC2のユーザ名)とssh-authorized-keys(公開鍵)を書き変える。
    ※元々のユーザーデータがあればコピーして残しておく。

#cloud-config
cloud_final_modules:
- [users-groups, always]
users:
  - name: ec2-user
    ssh-authorized-keys:
    - ※先ほどコピーした公開鍵を貼り付ける※

4.「保存」ボタンをクリックする。

5.EC2インスタンスの起動

通常通り対象のEC2インスタンスを選択して「インスタンスの状態」から
起動する。

6.SSHの接続確認

Tera Termなどのツールとダウンロードされた秘密鍵を使用して
対象のEC2インスタンスに接続できるか試す。

接続できない場合、ユーザーデータに記述するユーザ名や
公開鍵、半角スペースの数に間違いがないか確認する。

7.EC2インスタンスの停止

No.3と同様。

8.ユーザーデータの編集

今回の作業で設定したユーザーデータを削除する。

9.EC2インスタンスの起動

No.5と同様。

【備考】

  • キーペアのタイプを「ED25519」にする理由は以下のページにあるように
    「RSA」を受け付けない設定となっていることがあるため。


いいなと思ったら応援しよう!