Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 연결할 때 "imported-openssh-key" 또는 "Putty Fatal Error" 오류가 발생하는 이유가 무엇인가요?

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

Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 연결할 때 "imported-openssh-key" 또는 "Putty Fatal Error" 오류가 발생합니다. 이러한 오류는 어떻게 해결할 수 있나요?

간략한 설명

SSH를 사용하여 Linux 인스턴스에 연결할 때 다음과 유사한 오류가 발생합니다.

"Using username "root". Authentication with public key "imported-openssh-key" Please login as the user "ec2-user" rather than the user "root"."

-또는-

PuTTY 클라이언트를 사용할 때 다음과 유사한 오류가 발생합니다.

"PuTTY Fatal Error: Disconnected: No supported authentication methods available (server sent: publickey) OK

이러한 오류는 다음과 같은 상황에서 발생할 수 있습니다.

  • EC2 인스턴스와 SSH 세션을 협상할 때 AMI에 적합한 사용자 이름으로 연결하지 않습니다.
  • EC2 인스턴스와 SSH 세션을 협상할 때 잘못된 프라이빗 키를 사용하고 있습니다.

해결 방법

올바른 사용자 이름으로 연결 중인지 확인합니다.

로컬 시스템에서 적절한 사용자 이름으로 연결하고 있는지 확인합니다. 적절한 사용자 이름의 전체 목록은 인스턴스 연결 문제 해결을 참조하세요.

프라이빗 키가 올바른지 확인합니다.

1.    Amazon EC2 콘솔을 열고 인스턴스를 선택합니다.

2.    SSH를 사용하여 연결하려는 EC2 인스턴스를 찾습니다.

3.    [키 이름(Key Name)] 열에서 SSH를 통해 연결하려는 프라이빗 키 이름을 확인합니다.

PuTTY

SSH 프라이빗 키가 콘솔의 EC2 인스턴스에 대한 [키 이름(Key Name)] 열에 표시되는 프라이빗 키와 일치하는지 확인합니다.

프라이빗 키(.pem) 파일을 PuTTY(.ppk)에서 인식하는 형식으로 변환했는지 확인합니다. 자세한 내용은 PuTTYgen을 사용하여 프라이빗 키 변환을 참조하세요.

macOS 또는 Unix

다음 명령을 실행하여 사용자만 볼 수 있도록 키 페어 파일에 대한 권한을 변경했는지 확인합니다.

$ chmod 400 my-key-pair.pem

다음 예시 명령과 같이 -i 플래그 다음에 지정한 디렉터리와 파일 이름을 확인하여 프라이빗 키의 올바른 경로인지 확인합니다.

$ ssh -i my-key-pair.pem ec2-user@52.4.XX.XX

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를 사용하고 있는지 확인하세요.