![見出し画像](https://assets.st-note.com/production/uploads/images/161591572/rectangle_large_type_2_df91dfa369ecf2d5d4edfdf289da0f41.png?width=1200)
EC2で秘密鍵をなくしたときの対策
EC2へSSHで接続する際に利用する秘密鍵をなくしたときは以下のページを
見ながら新しい秘密鍵を登録するかと思います。
方法1を実際に試して素直にいかなかったので備忘として記述します。
1.キーペアの作成
EC2のダッシュボードを表示して左のメニューから「ネットワーク&セキュリティ - キーペア」の画面を表示する。
右上の「キーペアを作成」ボタンをクリックする。
名前などの項目を入力/選択して「キーペアを作成」ボタンをクリックする。
この時キーペアのタイプは「ED25519」を選択する。※理由は後述。
ファイル形式はどちらでもよくWinSCPのようなツールを利用している場合は「.ppk」の方が扱いやすい。
![](https://assets.st-note.com/img/1731396803-rgZGHvW7cRu9KiXfDCInTezU.png?width=1200)
4.新しい秘密鍵が自動でダウンロードされている。
2.公開鍵の取得
ssh-keygenコマンドやWinSCPなどのツールから公開鍵を取得する。
ここではWinSCPを利用する。
「puttygen.exe」を起動する。
デフォルトの場所にWinSCPをインストールしていれば
「C:\Program Files (x86)\WinSCP\PuTTY」にある。「Load」ボタンをクリックしてダウンロードされた秘密鍵を指定する。
![](https://assets.st-note.com/img/1731397756-VjzT7CfJPSKsBt6ODhFIrvHn.png)
3.一番上にある「Public Key for・・・」に表示されている文字列をコピーする。
3.EC2インスタンスの停止
通常通り対象のEC2インスタンスを選択して「インスタンスの状態」から
停止する。
4.ユーザーデータの設定
対象のEC2インスタンスを選択する。
右上の「アクション」から「インスタンスの設定 - ユーザーデータを編集」をクリックする。
画面の下側にあるテキストボックスに下記の内容を転記して
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」を受け付けない設定となっていることがあるため。