Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
SSH를 통해 EC2 인스턴스에 연결하려고 할 때 "Server refused our key" 오류 메시지가 표시되는 이유는 무엇입니까?
SSH를 통해 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 연결하면 "Server refused our key"라는 오류 메시지가 표시됩니다.
해결 방법
SSH 서버(sshd)는 다음 이유 중 하나로 프라이빗 SSH 키를 거부할 수 있습니다.
- Amazon EC2 인스턴스에 연결할 때 잘못된 프라이빗 키 파일을 사용했습니다. 이 문제를 해결하려면 Amazon EC2 Linux 인스턴스에 연결할 때 "imported-openssh-key" 또는 "PuTTY Fatal Error" 오류가 발생하는 이유는 무엇입니까?를 참조하십시오.
- 다른 사람이 /etc/ssh/sshd_config의 SSH 서버 설정을 변경했습니다. 이 문제를 해결하려면 인스턴스의 sshd_config 파일을 변경한 후 SSH를 사용하여 EC2 인스턴스에 액세스하려면 어떻게 해야 합니까?를 참조하십시오.
- 운영 체제(OS)에서 /etc/fstab 홈 디렉터리를 마운트할 수 없습니다. 이 문제를 해결하려면 EC2 Linux 인스턴스를 부팅할 때 비상 모드로 전환되는 이유는 무엇입니까?를 참조하십시오.
- Amazon EC2 인스턴스에 연결할 때 Amazon Machine Image(AMI)에 잘못된 사용자 이름을 사용했습니다. 올바른 사용자 이름 목록은 Error: Server refused our key 또는 No supported authentication methods available을 참조하십시오.
- 다른 사람이 서버에서 해당 사용자를 삭제했습니다. 이 문제를 해결하려면 사용자를 새 사용자로 서버에 다시 추가하십시오.
인스턴스에 권한 문제가 있거나 디렉터리가 없는 경우 Server refused our key 오류 메시지가 표시될 수도 있습니다. 인스턴스 권한 및 디렉터리를 확인하려면 다음 방법 중 하나를 사용하십시오.
EC2 직렬 콘솔 사용
Linux용 EC2 직렬 콘솔을 활성화한 경우, 직렬 콘솔을 사용하여 지원되는 Nitro 기반 인스턴스 유형 문제를 해결할 수 있습니다.
Systems Manager를 사용하여 인스턴스에 로그인하고 권한 확인
전제 조건: AWS Systems Manager Agent(SSM Agent)를 설치합니다 또한 구성이 AWS Systems Manager의 기능인 Session Manager의 전제 조건을 준수하는지 확인하십시오.
Session Manager를 사용하여 인스턴스 문제를 해결하려면 다음 단계를 완료하십시오.
-
Systems Manager 콘솔을 엽니다.
-
home 디렉터리에 있는 파일에 올바른 권한이 있는지 확인하려면 다음 명령을 실행합니다.
stat /home/ec2-user/ ls -ld /home # Should show drwxr-xr-x (755) ls -ld /home/ec2-user # Should show drwx------ (700) ls -ld /home/ec2-user/.ssh # Should show drwx------ (700) ls -l /home/ec2-user/.ssh/authorized_keys # Should show -rw------- (600)참고: ec2-user를 AMI의 올바른 사용자 이름으로 바꾸십시오.
출력에서 Access를 검사하여 구성에서 다음 권한을 사용하는지 확인하십시오.
/home Linux 홈 디렉터리에는 0755/drwxr-xr-x 권한이 있어야 합니다.
/home/ec2-user/ 사용자의 홈 디렉터리에는 0700/drwx------ 권한이 있어야 합니다.
/home/ec2-user/.ssh .ssh 디렉터리 권한에는 0700/drwx------ 권한이 있어야 합니다.
/home/ec2-user/.ssh/authorized_keys authorized_keys 파일 권한에는 0600/-rw------- 권한이 있어야 합니다.
출력 예시:File: '/home/ec2-user/' Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 10301h/66305d Inode: 18322 Links: 3 Access: (0700/drwx------) Uid: ( 500/ec2-user) Gid: ( 500/ec2-user) -
구성의 권한을 업데이트하려면 다음 명령을 실행합니다.
sudo chown root:root /home$ sudo chmod 755 /home$ sudo chown ec2-user:ec2-user /home/ec2-user -R sudo chmod 700 /home/ec2-user /home/ec2-user/.ssh sudo chmod 600 /home/ec2-user/.ssh/authorized_keys참고: ec2-user를 AMI의 올바른 사용자 이름으로 바꾸십시오.
AWSSupport-TroubleshootSSH 런북 실행
오류를 일으키는 문제를 자동으로 수정하려면 AWSSupport-TroubleshootSSH를 실행하십시오. 런북은 인스턴스에 Amazon EC2Rescue 도구를 설치한 다음, SSH 중에 원격 연결 오류를 일으키는 문제를 파악하여 수정합니다. 자세한 내용은 SSH를 사용하여 EC2 인스턴스에 연결하려고 하면 오류가 발생합니다. AWSSupport-TroubleshootSSH 자동화 워크플로를 사용하여 SSH 연결 문제를 해결하려면 어떻게 해야 합니까?를 참조하십시오.
사용자 데이터를 사용하여 인스턴스에 대한 권한 수정
중요: 인스턴스를 중지하고 시작하기 전에 다음 작업을 수행하십시오.
- Amazon Elastic Block Store(Amazon EBS) 볼륨의 백업을 생성합니다.
참고: 인스턴스가 인스턴스 저장소 기반 인스턴스이거나 데이터가 포함된 인스턴스 저장소 볼륨을 보유하는 경우, 인스턴스를 중지하면 Amazon EC2에서 해당 데이터를 삭제합니다. 인스턴스의 루트 디바이스가 인스턴스 저장소 볼륨인 경우 사용자 데이터를 사용하여 SSH 키를 변경할 수 없습니다. - 해결 단계를 완료할 때 Amazon EC2 Auto Scaling 그룹에서 인스턴스를 일시적으로 제거합니다.
참고: EC2 Auto Scaling 그룹에 속한 인스턴스를 중지하면 스케일 인 보호 설정에 따라 인스턴스가 종료될 수 있습니다. Amazon EMR, AWS CloudFormation 또는 AWS Elastic Beanstalk를 사용하여 시작하는 인스턴스는 Auto Scaling 그룹에 있을 수 있습니다. - 인스턴스를 중지해도 인스턴스가 종료되지 않도록 하려면 인스턴스 종료 동작을 중지로 설정합니다.
- cloud-init를 설치하고 구성합니다. 자세한 내용은 cloud-init 웹 사이트에서 SSH 및 SSH 키 구성을 참조하십시오.
중요: 인스턴스의 사용자 데이터 업데이트는 cloud-init 명령을 지원하는 모든 배포에 영향을 줍니다.
참고: 인스턴스를 중지하고 시작할 때 인스턴스의 퍼블릭 IP 주소가 변경됩니다. 퍼블릭 IP 주소 대신 탄력적 IP 주소를 사용하여 외부 트래픽을 인스턴스로 라우팅하는 것이 가장 좋습니다. Amazon Route 53을 사용하는 경우 퍼블릭 IP 주소가 변경될 때 Route 53 DNS 레코드를 업데이트해야 할 수 있습니다.
사용자 데이터를 사용하여 권한 문제를 해결하려면 다음 단계를 완료하십시오.
-
Amazon EC2 콘솔을 엽니다.
-
탐색 창에서 인스턴스를 선택한 다음, 해당 인스턴스를 선택합니다.
-
인스턴스 상태를 선택한 다음, 인스턴스 중지를 선택합니다.
참고: 인스턴스 중지를 선택할 수 없는 경우 인스턴스가 이미 중지되었거나 루트 디바이스가 인스턴스 저장소 볼륨일 수 있습니다. -
작업을 선택하고 인스턴스 설정을 선택합니다.
-
사용자 데이터 편집을 선택하고 다음 명령을 입력합니다.
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: - [scripts-user, always] --//Content-Type: text/x-shellscript; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="userdata.txt" #!/bin/bash chown root:root /home chmod 755 /home chown ec2-user:ec2-user /home/ec2-user -R chmod 700 /home/ec2-user /home/ec2-user/.ssh chmod 600 /home/ec2-user/.ssh/authorized_keys --//참고: ec2-user를 AMI의 올바른 사용자 이름으로 바꾸십시오. 위의 명령을 입력할 때 공백을 더 추가하지 마십시오.
-
저장을 선택합니다.
-
인스턴스를 시작한 다음, SSH를 사용하여 인스턴스에 연결합니다.
기본적으로 user data 명령은 각 인스턴스에 대해 한 번 실행됩니다. 위 단계에서는 기본 동작을 변경하여 인스턴스를 재부팅, 중지 또는 시작할 때마다 퍼블릭 키를 추가합니다. 기본 동작을 복원하려면 사용자 지정 user data 명령을 제거하십시오. 인스턴스를 처음 부팅한 후 user data가 실행되도록 하는 것이 좋습니다. ModifyInstanceAttribute API를 사용하여 인스턴스의 사용자 데이터를 수정할 수 있습니다. ModifyInstanceAttribute API에 대한 액세스를 제한하려면 AWS Identity and Access Management(IAM) 정책을 사용하십시오.
관련 정보
Amazon EC2 키 페어 및 Amazon EC2 인스턴스
SSH를 사용하여 Amazon EC2 Linux 인스턴스에 연결할 때 발생하는 문제를 해결하려면 어떻게 해야 합니까?
SSH를 통해 EC2 인스턴스에 연결하려고 할 때 "Server refused our key" 오류 메시지가 표시되는 이유는 무엇입니까?
관련 콘텐츠
- 질문됨 2년 전

