최초 시작 후 SSH 키 페어가 손실된 경우 Amazon EC2 인스턴스에 연결하려면 어떻게 해야 하나요?

최종 업데이트 날짜: 2021년 5월 5일

Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 연결하려고 하지만 SSH 키 페어가 손실되었습니다. 인스턴스에 연결하려면 어떻게 해야 합니까?

해결 방법

중요:

방법 2, 3 및 4를 적용하려면 인스턴스를 중지한 후 시작해야 합니다. 다음 사항에 유의하세요.

  • 인스턴스 스토어가 지원되는 인스턴스이거나 데이터가 포함된 인스턴스 스토어 볼륨이 인스턴스에 있는 경우 인스턴스 중지 시 데이터가 손실됩니다. 자세한 내용은 인스턴스의 루트 디바이스 유형 확인을 참조하세요. 인스턴스 스토어 볼륨에서 유지하려는 데이터를 모두 백업해야 합니다.
  • 인스턴스를 중지한 후 다시 시작하면 인스턴스의 퍼블릭 IP 주소가 변경됩니다. 외부 트래픽을 인스턴스로 라우팅할 때는 퍼블릭 IP 주소 대신 탄력적 IP 주소를 사용하는 것이 좋습니다.

방법 1: EC2 직렬 콘솔 사용

Linux용 EC2 직렬 콘솔을 활성화한 경우 이 콘솔을 사용하여 지원되는 Nitro 기반 인스턴스 유형의 문제를 해결할 수 있습니다. 직렬 콘솔을 사용하면 부팅 문제, 네트워크 구성 및 SSH 구성 문제를 해결할 수 있습니다. 직렬 콘솔은 작동 중인 네트워크 연결 없이 인스턴스에 연결됩니다. Amazon EC2 콘솔 또는 AWS 명령줄 인터페이스(AWS CLI)를 사용하여 직렬 콘솔에 액세스할 수 있습니다.

직렬 콘솔을 사용하기 전에 계정 수준에서 액세스 권한을 부여합니다. 그런 다음 IAM 사용자에게 액세스 권한을 부여하는 AWS Identity and Access Management(IAM) 정책을 생성합니다. 또한 직렬 콘솔을 사용하는 모든 인스턴스에는 암호 기반 사용자가 한 명 이상 포함되어야 합니다. 인스턴스에 연결할 수 없고 직렬 콘솔에 대한 액세스를 구성하지 않은 경우 방법 2, 방법 3 또는 방법 4의 지침을 따릅니다. Linux용 EC2 직렬 콘솔 구성에 대한 자세한 내용은 EC2 직렬 콘솔에 대한 액세스 구성을 참조하세요.

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

방법 2: 사용자 데이터 입력

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

2.    Amazon EC2 콘솔에서 프라이빗 키를 생성하려면 해당 키 페어의 퍼블릭 키를 검색합니다.

3.    Amazon EC2 콘솔을 엽니다.

4.    인스턴스를 중지합니다.

5.    [작업], [인스턴스 설정], [사용자 데이터 편집]을 차례로 선택합니다.

6.    다음 스크립트를 사용자 데이터 편집(Edit user data) 대화 상자에 복사합니다.

Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0

--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"

#cloud-config
cloud_final_modules:
- [users-groups, once]
users:
  - name: username
    ssh-authorized-keys: 
    - PublicKeypair

username은 사용자 이름(예: ec2-user)으로 바꿉니다. 기본 사용자 이름을 입력하거나, 이전에 인스턴스에 대해 설정한 사용자 지정 사용자 이름이 있는 경우 해당 이름을 입력합니다. 기본 사용자 이름 목록은 인스턴스에 연결하기 위한 일반 사전 요구 사항을 참조하세요.

PublicKeypair를 2단계에서 검색한 퍼블릭 키로 바꿉니다. ssh-rsa로 시작하는 전체 퍼블릭 키를 입력해야 합니다.

7.    저장(Save)을 선택합니다.

8.    인스턴스를 시작합니다.

9.    cloud-init 단계가 완료된 후 퍼블릭 키가 바뀌었는지 확인합니다.

중요: 스크립트에 키 페어가 포함되어 있으므로 [User Data(사용자 데이터)] 필드에서 스크립트를 제거하는 것이 좋습니다.

10.    인스턴스를 중지합니다.

11.    [작업], [인스턴스 설정], [사용자 데이터 편집]을 차례로 선택합니다.

12.    사용자 데이터 편집(Edit user data) 대화 상자에서 모든 텍스트를 삭제한 다음 저장(Save)을 선택합니다.

13.    인스턴스를 시작합니다.

방법 3: AWS Systems Manager 사용

인스턴스가 AWS Systems Manager에 관리형 인스턴스로 포함되어 있는 경우 AWSSupport-ResetAccess 문서를 사용하여 손실된 키 페어를 복구합니다. AWSSupportResetAccess는 지정된 EC2 인스턴스에서 EC2 Rescue for Linux 도구를 사용하여 새 SSH(퍼블릭/프라이빗) 키 페어를 자동으로 생성하고 추가합니다.

인스턴스에 대한 새 SSH 프라이빗 키는 암호화되어 AWS Systems Manager Parameter Store에 저장됩니다. 파라미터 이름은 /ec2rl/openssh/instance_id/key입니다. 이 파라미터의 값을 콘텐츠로 사용하여 새 .pem 파일을 생성하고 이를 사용하여 연결할 수 없는 인스턴스에 다시 연결합니다.

참고: 자동화 워크플로는 암호로 보호된 백업 Amazon Machine Image(AMI)를 생성합니다. 새 AMI는 자동으로 삭제되지 않고 계정에 유지됩니다.

이러한 AMI를 찾으려면 다음을 수행합니다.

1.    Amazon EC2 콘솔을 열고 AMI를 선택합니다.

2.    검색 필드에 자동화 실행 ID를 입력합니다.

방법 4: Amazon EC2 Instance Connect 사용

인스턴스가 Amazon Linux 2 2.0.20190618 이상인 경우 EC2 Instance Connect를 사용하여 인스턴스에 연결할 수 있습니다.


이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요하세요?