##はじめに
EC2の秘密鍵を紛失してしまい、EC2にログインできなくなってしまったの対処法について記載します。
僕の場合、今までpemファイルを置いていたディレクトリを変更したところなぜかそのディレクトリからpemファイルが消えてしまいログインできなくなってしまいました。
AMIと新しいキーペアを作成して適用させる方法もあるそうですが僕は上手くいかなかったので、ここではAWS Systems Managerを使用した方法を紹介します。
なおこのやり方は既存のインスタンスに対して秘密鍵の追加というイメージになるかと思います。
またmacのPCを使用しているため、windowsの方は若干表示や手順が異なる箇所があるかもしれません。ご了承いただければ幸いです。
##対処法
まず以下の流れとなります。
①AWS Systems Manager自動化の実行
②AWS Systems Managerパラメータストアから秘密鍵を取得
③新しいキーペアを作成
④秘密鍵情報をpemファイルに記載
⑤EC2にログイン
####①AWS Systems Manager自動化の実行
まずはAWS Systems Managerを有効にします。
AWSの画面上部にある検索窓にて、「Systems Manager」と入力して、「Systems Manager」を開いてください。
そして変更管理→自動化を選択してください。
次にオートメーションの実行を押して、検索窓で「AWSSupport-ResetAccess」と入力して、AWSSupport-ResetAccessを選択してください。
すると説明画面が展開されると思うので、右上にある「オートメーションを実行する」を押してください。
次の画面では、入力パラメータの「InstanceId」欄にログインしたいEC2インスタンスのインスタンスIDを入力してください。
実行を押して完了するまでしばらく待ちます。(10~15分ほどかかります。)
全体的なステータスが「成功」となっていれば大丈夫です!
###②AWS Systems Managerパラメータストアから秘密鍵を取得
次にアプリケーション管理→パラメータストアを選択してください。
そしてマイパラメータのところに出てきている名前をクリックしてください。
すると詳細画面が表示されるので、概要タブの値という部分が「********」といった形で記載されているので、表示を押して展開してください。
そこに記載されている内容が秘密鍵の内容となりますので、コピーしておいてください。
###③新しいキーペアを作成
先ほどコピーした内容を記載するために、新しいキーペアを作成します。
今回はpemファイル自体を紛失しているので、新しく作成します。
AWSにて、EC2→ネットワークセキュリティ→キーペアへ移動してください。
そしてキーペアの画面の右上にある「キーペアを作成」を押すと、作成画面が出てきますので任意の名前をつけて作成してください。
※今度こそこのキーペアは無くさないようにしましょう笑
ダウンロードされたpemファイルを適当なディレクトリに移動させて、適切な権限を設定してください。
例)
$ mv ****.pem ~/.ssh/
$ chmod 400 ~/.ssh/****.pem
###④秘密鍵情報をpemファイルに記載
次にAWS Systems Managerにて確認した秘密鍵情報をpemファイルに記載します。
.ssh $ vim ****.pem
#pemファイル内に②にて確認した秘密鍵の情報をコピペ。
.ssh $ chmod 600 ****.pem
###⑤EC2にログイン
ここまで完了しましたらいよいよEC2へのログインです。
.ssh $ ssh -i ****.pem ec2-user@public IP もしくは Elastic ID
無事ログインできたでしょうか。
もし上手くいかない場合は、①での「AWSSupport-ResetAccess」ドキュメント実行時に、入力パラメーターの「SubnetId」欄をログインしたいインスタンスと同じAZにあるVPCのサブネットを指定してみてください。
この記事が少しでも解決の一助になれていれば幸いです。