0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

EC2でauthorized_keys内の公開鍵を削除してしまい、sshログインできなくなった時の対処法

Last updated at Posted at 2021-07-04

参考記事

状況

これは私がCircleCIを導入する際に、EC2にログインできなくなった事件が発生したので、その際の対処法についてまとめたものです。

ログインできなくなった原因は、CircleCIの設定を行う際に、EC2内の.ssh/authorized_keys配置されている公開鍵を削除してしまった事に由来します。この問題はEC2の場合、少しややこしい手順を踏みますが、復旧可能です(まじで詰んだと思いました。)。

解決手順

解決手順は1個目のQiitaの記事を参考にさせて頂きました。

注意点としましては、調査用(新しく作成する)EC2の認証鍵の作成の際に、既存の鍵を使用する、を選択する事です。これで自身のパソコン内にあるpemファイルを用いてログイン可能にする為、その為に必要な公開鍵がEC2内に作成されます。

  1. 該当のEC2インスタンスを止めます。
  1. ディスクをデタッチして外します。
  2. 自分がrootになれる別のEC2インスタンスに、2のディスクをアタッチします。
  3. そのEC2インスタンスにログインして、2のディスクをマウントします。
  4. マウントしたディスクの中でauthorized_keysファイルを作ります。
  5. ディスクをアンマウントしてログアウトします。
  6. そのディスクを元のEC2インスタンスにアタッチして起動します。

1~4の更なる詳細な手順は、2個目の記事を参考にすると進行可能です。

4の作業の際にに新しいEC2に対し、既存の(ログインできなくなった)EC2ディスクをマウントする必要がありますが、警告が出てマウントすることができません。
その対処法は自分の場合、3つ目の記事を参考に、-o nouuidオプションを追記する事でマウント可能になりました。

そして5の作業について自分の場合は、sudo cat authorized_keysコマンドで中にある公開鍵をコピーし、マウントしたディスク内の.ssh/authorized_keys内にペーストする作業を行いました。
新規作成したEC2においても同一の公開鍵を利用する設定にしている為、同一の公開鍵が生成され、その値をauthorized_keysに戻す事で、データを復旧させることができる、という流れです。

あとは引用記事を参考に、ディスクをアンマウント、新規EC2を停止、ディスクを既存のEC2にアタッチする事で、再ログインが可能になります。

最後に

まじで焦りました。認証周りの設定に関しては、勢いで行動するのをやめよう。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?