메뉴 닫기

[Tech] 인스턴스의 키 페어를 분실한 경우 해결하는 방법 2

안녕하세요 에이클라우드입니다.

이전 포스트에서는 인스턴스에 접속하는 키 페어를 분실한 경우 AMI를 통해 이슈를 해결하는 방법에 대해 다뤄보았습니다.
다만 AMI를 통해 해당 이슈를 해결하려면 결국 이미지를 생성하고 이를 통해 서버를 새로 생성해야 한다는 번거로움과
이미지를 생성한 시점까지의 데이터만 유지된다는 단점이 있습니다.

따라서 이번 포스트에서는 다른 방법으로 해당 이슈를 해결해보고자 합니다.
콘솔 환경을 사용하며 순서는 다음과 같이 진행됩니다.


새로운 키 페어 생성 ▶︎ 키 페어의 퍼블릭 키 값 복사 ▶︎ EC2 Instance Connect를 통해 인스턴스 연결 ▶︎ 인스턴스에 퍼블릭 키 추가 ▶︎ 새 키 페어로 인스턴스 접속


EC2 키 페어의 경우 비대칭 키로 클라이언트가 프라이빗 키를 가지고 인스턴스는 퍼블릭 키를 가지게 됩니다.
따라서 새로운 키 페어의 퍼블릭 키를 인스턴스에 추가하면 클라이언트는 새로운 키 페어를 통해 인스턴스에 접속할 수 있게됩니다.
해당 방법은 키 페어를 분실한 경우 뿐만 아니라 여러 키 페어를 통해 서버에 연결하려는 경우에도 사용할 수 있습니다.


키 페어 분실 문제 해결하기



1. 먼저 서버 접속에 사용할 새로운 키 페어를 생성하도록 합니다.
EC2 대시보드 ▶︎ 좌측 메뉴의 ‘네트워크 및 보안’ ▶︎ 키 페어 메뉴로 이동합니다.


우측 상단의 ‘키 페어 생성’ 버튼을 클릭합니다.



새로운 키 페어의 이름과 유형, 형식을 지정하고 키 페어를 생성합니다.
본 포스트에서는 RSA 유형과 pem 형식을 사용하였습니다.



2. 다음 명령을 통해 새로운 키 페어의 퍼블릭 키 값을 확인하고 이를 복사합니다.
ssh-keygen -y -f /keypair_path/key_name.pem
ssh-keygen은 SSH 프로토콜의 표준 구성 요소로 인증 키를 생성하거나 관리하는 데 사용됩니다.
커맨드의 -f 옵션으로 키 경로를 지정하고 -y 옵션으로 주어진 키의 퍼블릭 키를 확인합니다.

퍼블릭 키 값이 나오면 맨 앞 ssh-rsa 부분 부터 끝까지 복사해둡니다.



명령 실행 시 이러한 에러가 발생한다면 키 페어의 권한을 확인해 보시고 다음 명령을 사용해보도록 합니다.
chmod 400 key_name.pem



3. 이제 퍼블릭 키를 서버에 추가할 차례입니다. 키 페어를 분실하였기 때문에 EC2 Instance Connect를 통해 서버에 접속하도록 합니다.
먼저 인스턴스의 보안 그룹 인바운드 규칙에 EC2 Instance Connect 서비스 IP 주소를 추가합니다.
해당 주소는 리전 별로 상이하므로 다음 링크의 ip-ranges.json을 통해 먼저 확인하도록 합니다.
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/aws-ip-ranges.html



4. 보안 그룹에 EC2 Instance Connect 서비스 IP 주소를 추가한 이후 인스턴스에 연결합니다.


인스턴스에 정상적으로 연결이 되었습니다.



5. 인스턴스에 새로운 퍼블릭 키를 추가합니다. 퍼블릭 키는 .ssh/authorized_keys 파일에 저장됩니다. 해당 파일을 vi 편집기를 통하여 수정합니다.


ssh-keygen 커맨드를 통해 확인한 새로운 키 페어의 퍼블릭 키 값을 복사하여 파일 내에 붙여넣고 저장합니다.
(기존에 분실한 키 페어의 퍼블릭 키는 삭제하여도 무방합니다.)



6. 이제 새로운 키 페어를 통해 인스턴스에 연결을 시도합니다.


서버에 정상적으로 연결이 되었다면 성공입니다!




여기까지 EC2 Instance Connect를 통하여 키 페어 분실 문제를 해결해보았습니다.
다만 주의하실 점은 EC2 Instance Connect를 통해 인스턴스에 연결하기 위해서는 인스턴스에 퍼블릭 IPv4 주소가 있어야하며
그렇지 않은 경우 EC2 Instance Connect 엔드포인트를 사용해야 합니다.

혹여 부득이하게 키 페어를 분실한 경우, 위 방법을 시도해 보시길 바랍니다.
감사합니다.