[AWS] EC2 키 페어 분실 시 간편 복구방법

안녕하세요? 누리클라우드입니다.

AWS 클라우드에서 시스템을 운영 중에 간혹 EC2 인스턴스의 터미널 접속에 필요한 키 페어를 분실하여 곤란해 하시는 분들을 접하게 되는데요, 이번 글에서는 키 페어의 개인키를 분실했을 때 새로운 키 페어로 교체하는 방법을 소개해 드리겠습니다.

2018년 9월 이후로 키페어 없이 EC2 접속이 가능해졌습니다! 이 글의 맨 아래 “추가글“을 바로 참조해 주시기 바랍니다~ 

1.새로운 키 페어를 생성합니다.

먼저, 새로 사용할 키페어를 아래 경로에서 생성합니다.
EC2 대시보드 -> 네트워크 및 보안 -> 키 페어 -> 키 페어 생성

2. 분실한 키를 교체할 새로운 이름으로 키 페어를  만듭니다.


개인키는 키 페어를 생성한 직 후 단 한 번만 다운로드 할 수 있으니 잘 보관하시기 바랍니다.

3. 복구작업에 사용할 임시 EC2 인스턴스를 생성합니다.

주의: 인스턴스는 대상 인스턴스와 동일한 가용영역에 생성하여야 복구대상의 볼륨을 연결할 수 있습니다.

임시 인스턴스는 위에서 만든 새  키 페어로 생성합니다.

4. 복구대상 인스턴스를 정지하고 ROOT 볼륨을 분리합니다.

볼륨 메뉴에서 해당 볼륨을 복구 대상 인스턴스로부터 분리합니다.

5. 복구대상 인스턴스에서 분리한 ROOT 볼륨을 선택 후 임시 인스턴스에 연결 합니다.

6. 임시 인스턴스에 터미널 접속 후, 위에서 연결한 복구대상의 ROOT 볼륨을 마운트합니다.

볼륨 확인:

임시 폴더에 ROOT 볼륨 마운트:
# mount -o nouuid /dev/xvdb2 /mnt

* 혹시, 복구대상 ROOT 볼륨으로 부팅이 되버리는 경우는 잘못된 볼륨에서 부팅 을 참고하여 주시기 바랍니다.

7. 복구대상 ROOT 볼륨에 있는 공개키 파일의 내용을 새 공개키 파일의 내용으로 수정 후 마운트 해제합니다.

# cat /home/ec2-user/.ssh/authorized_keys > /mnt/home/ec2-user/.ssh/authorized_keys
* 공개키 파일 경로는 OS에 따라 다를 수 있습니다.
# umount /mnt

8. 마운트 해제 후 임시 인스턴스를 정지합니다.

9. 임시 인스턴스에 연결하였던 복구대상 ROOT 볼륨을 분리 후 원래의 복구대상 인스턴스에 다시 연결합니다.

다시 연결할 때는 ROOT 볼륨의 장치 이름을  원래 이름인 /dev/sda 또는 /dev/sda1 로 지정해 주어야 합니다.

10. 복구대상 인스턴스를 시작 후 교체한 새 키로 접속이 되는지 확인합니다.

맺음말

이상으로 키 분실로 인해 발생하는 인스턴스 접속 문제를 해결하기 위해 키 페어를 교체하는 방법에 대해 소개 드렸습니다. 무엇보다 중요한 것은 키에 대한 철저한 보관 및 관리를 통해 이런 상황을 겪지 않아야겠지만 혹시 발생하였을 경우에 도움이 될수 있기를 바랍니다.

추가글

* 2023/6월 Amazon EC2 Instance Connect Endpoint가 출시되어 개인키와 공인IP 없는 EC2 뿐만 아니라 RDS 접근까지 가능해 졌습니다. 이 방법은 [AWS] 공인IP 없이 SSH접속 방법 – EC2 인스턴스 커넥트 엔드포인트 사용을 참고하여 주시기 바랍니다.

* 2020/5/4일 Amazon EC2 Instance Connect가 출시되어 개인키 없이 웹쉘로 인스턴스 접근이 가능해 졌습니다. 이 방법은 EC2 Instance Connect를 사용하여 Linux 인스턴스에 연결을 참고하여 주시기 바랍니다.

* 2018/9/11일 AWS Systems Manager 세션관리자가 출시되어 개인키 없이 웹쉘로 인스턴스 접근이 가능해 졌습니다. 이 방법은 Systems Manager의 세션 관리자로 분실한 EC2 키페어 간편 복구하기를 참고하여 주시기 바랍니다.