...
키페어(Key Pair) 분실시 대처 방법
서두 부터 결론적으로 말하자면 해당 키페어를 분실하면, 그 키페어를 다시 복구하는 방법은 없다.
따라서 키페어를 분실하여 ssh 접속을 못하는 인스턴스에 등록된 키페어를 다른 것으로 교체해서 다시 접속하게 해주는 방법으로 복구해야 한다.
키페어를 복구하는 두가지 방법을 소개 해본다.
Key-pair 란?
클라우드 서버에 접속하기 위한 암호화 파일로, aws 인스턴스는 퍼블릭 키를 인스턴스에 저장하고, 사용자는 프라이빗 키를 저장한다. 그리고 확장자가 pem인 파일과 ppk인 파일로 접속하는 형태이다.
key-pair는 공개키(Public Key)와 비공개키(Private Key)를 이야기하며, 여기서 Public Key가 pem파일, Private Key가 ppk파일이 된다.
키 페어 파일에는 다음 텍스트가 포함된다.
웹 https의 ssl 통신에서 배운 공개키 방식을 그대로 ec2 ssh에 쓰인다고 보면 된다.
1. 키페어 교체 방법
보통 인스턴스의 키에 대한 정보 (공개키) 는 EBS 볼륨에 들어있다.
따라서 EBS를 인스턴스로부터 연결 해제하고, 다른 인스턴스에 마운트 해서 Key를 복사해 키페어를 교체하는 방법을 말한다.
조금 생소해서 약간 복잡할 수 있는데, 전체적인 과정 맥락을 알아보면 다음과 같다.
- 키페어 잃어버린 인스턴스 A 를 중지하고, 인스턴스의 EBS 볼륨을 분리(detach)
- 내가 가지고 있는 키페어를 사용하는 인스턴스 B 에 EBS를 연결(attach)
- 인스턴스 B 터미널에 접속후 방금 붙인 EBS 볼륨을 마운트
- 현재 인스턴스B의 공개키를 새로 붙인 EBS 볼륨에 복사하고 마운트 해제
- 이제 EBS 볼륨을 분리하고 다시 인스턴스 A에 연결
- 키페어 교체 완료 (교체된 키페어로 접속)
1. 인스턴스 중지하고 볼륨 분리 (방명록앱서버v3 ← 잃어버린 키페어 인스턴스)
2. 키페어를 갖고있는 인스턴스에 EBS 볼륨 연결 (bastion 인스턴스에 연결)
기존 인스턴스를 사용해도 되고, 아예 새로 EC2 인스턴스를 생성해 키페어를 등록하고 만들어진 인스턴스에 연결하는 방식으로도 해도 된다.
3. 새로 붙인 EBS 볼륨을 마운트
디바이스를 /dev/sdf 이름으로 볼륨을 연결했다면, xvdf1 이라고 정보가 터미널에 뜰 것이다.
$ lsblk
$ sudo mount -o nouuid /dev/xvdf1 /mnt # xvdf1를 마운트
4. 현재 인스턴스의 공개키를 마운트한 EBS 볼륨에 복사
$ cat /home/ec2-user/.ssh/authorized_keys > /mnt/home/ec2-user/.ssh/authorized_keys # 키복사
$ sudo umount /mnt # 키복사 했으니, 언마운트
5. 키 복사가 완료됬으면, 볼륨을 분리하고 다시 기존 인스턴스에 연결
이때 반드시, 디바이스 이름을 원래 인스턴스에 연결된 원래 이름으로 적어주어야 한다.
보통 루트 볼륨 이름은 /dev/xvda 로 통일되어 있다.
6. 교체한 키페어로 접속 테스트
2. 새 키페어 등록 방법
기존의 인스턴스의 키페어 암호화키를 가져와 변경 교체하는 방법이 아닌, 아예 인스턴스를 AMI 이미지로 만들고, 그 AMI로 인스턴스를 새로 만들어서 새로 키페어를 등록하는 식으로 위의 방법보다 간편한 방법이다.
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.