SSH를 사용하여 EC2 인스턴스에 연결하려고 할 때 오류가 발생합니다. AWSSupport-TroubleshootSSH 자동화 워크플로를 사용하여 SSH 연결 문제를 해결하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 7월 29일

상세 메시징이 켜져 있는 SSH를 통해 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 로그인하면 "권한 거부(Permission denied)" 또는 "연결 거부(Connection refused)" 와 같은 오류가 발생합니다. AWSSupport-TroubleshootSSH 자동화 문서를 사용하여 SSH 연결 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

AWSSupport-TroubleshootSSH는 Amazon EC2Rescue 도구를 설치합니다. 그런 다음, SSH를 통해 Linux 시스템에 연결할 때 원격 연결 오류를 일으키는 몇 가지 문제를 확인하고 수정합니다. AWSSupport-TroubleshootSSH 자동화를 실행하여 서브넷, S3 버킷 또는 IAM 역할별로 문제를 자동으로 해결합니다.

Linux용 EC2Rescue 사용을 위한 시스템 요구 사항

EC2Rescue for Linux에는 다음 사전 조건을 충족하는 Amazon EC2 Linux 인스턴스가 필요합니다.

지원되는 운영 체제

  • Amazon Linux 2
  • Amazon Linux 2016.09+
  • SLES 12+
  • RHEL 7+
  • Ubuntu 16.04+

소프트웨어 요구 사항

  • Python 2.7.9+ 또는 3.2+

참고: 상세 메시징이나 기타 유형의 오류 메시지 문제 해결에 대한 자세한 내용은 SSH를 사용하여 Amazon EC2 Linux 인스턴스에 연결할 수 없는 이유는 무엇입니까?를 참조하십시오.

해결 방법

시작하기 전에 다음을 수행합니다.

  • 문제를 해결할 Amazon EC2 인스턴스의 인스턴스 ID를 복사합니다. 자동화 문서를 실행하려면 인스턴스 ID가 필요합니다.
  • (선택 사항) 연결할 수 없는 Amazon EC2 인스턴스와 동일한 가용 영역에 있는 서브넷의 ID를 복사합니다. EC2Rescue 인스턴스는 이 서브넷에 설치됩니다. 서브넷을 지정하지 않으면 자동화 문서가 AWS 계정에 새 임시 VPC를 생성합니다. AWS 계정에 사용 가능한 VPC가 하나 이상 있는지 확인하십시오. 기본적으로 한 리전에 5개의 VPC를 생성할 수 있습니다. 리전에 이미 5개의 VPC를 생성한 경우, Amazon EC2 인스턴스를 변경하지 않고 자동화가 실패합니다. 자세한 내용은 VPC 및 서브넷을 참조하십시오.
  • (선택 사항) 자동화를 위한 AWS Identity and Access Management(IAM) 역할을 생성하고 지정합니다. 이 역할을 지정하지 않는 경우, AWS Systems Manager Automation은 이 문서를 실행하는 사용자의 권한을 사용합니다. 자동화를 위한 역할 생성에 대한 자세한 내용은 IAM 서비스 역할을 사용하여 자동화 실행을 참조하십시오.

AWS Systems Manager 콘솔에서 AWSSupport-TroubleshootSSH 자동화 실행

  1. AWS Systems Manager 콘솔을 엽니다.
  2. 탐색 창에서 [Automation]을 선택합니다.
    참고: AWS Systems Manager 홈 페이지를 처음 연 경우, 메뉴 아이콘을 선택하여 탐색 창을 연 다음 [Automation]을 선택합니다.
  3. [Execute automation]을 선택합니다.
  4. 검색 필드에 AWSSupport-TroubleshootSSH를 입력한 다음, Enter를 누릅니다.
  5. 검색 결과에서 AWSSupport-TroubleshootSSH를 선택합니다.
  6. 문서 목록에서 AWSSupport-TroubleshootSSH를 선택합니다. 문서 소유자는 Amazon입니다.
  7. 설명(Description) 섹션에서 문서 버전(Document version)런타임에 기본 버전(Default version at runtime)으로 설정되어 있는지 확인합니다.
  8. [다음(Next)]을 선택합니다.
  9. [자동화 문서 실행(Execute automation document)] 섹션에서 [단순 실행(Simple execution)]을 선택합니다.
  10. [입력(Input)] 파라미터 섹션에서 다음 파라미터를 지정합니다.
    [InstanceID]에 대해, 연결할 수 없는 인스턴스의 ID를 지정합니다. [Action]에 대해 [FixAll]을 선택합니다.
    [AllowOffline]에 대해 [True]를 선택합니다.
    참고: 이 파라미터가 False로 설정되고 인스턴스가 Systems Manager에서 관리되지 않는 경우 자동화가 실패합니다.
    (선택 사항) SubnetId에 대해, 지정한 Amazon EC2 인스턴스와 동일한 가용 영역에 있는 기존 VPC의 서브넷을 지정합니다. 기본적으로 Systems Manager는 새 VPC를 생성하지만 기존 VPC의 서브넷을 지정할 수 있습니다.
    (선택 사항) [S3BucketName]에 대해, 쓰기 권한이 있는 버킷의 이름을 입력합니다. 문제 해결 로그가 이 버킷에 업로드됩니다(제공된 경우).
    (선택 사항) AutomationAssumeRole에 대해, 이 실행에 대한 IAM 역할을 지정합니다. 역할이 지정되지 않은 경우 AWS Systems Manager Automation은 이 문서를 실행하는 사용자의 권한을 사용합니다.
  11. [실행(Execute)]을 선택합니다.
  12. 실행 진행 상태를 모니터링하려면 실행 중인 자동화를 선택한 다음, [단계(Steps)] 탭을 선택합니다. 실행이 완료되면 [설명(Descriptions)] 탭을 선택한 다음, [출력 보기(View output)]를 선택하여 결과를 봅니다. 개별 단계의 출력을 보려면 [단계(Steps)] 탭을 선택한 다음, 단계 옆의 [출력 보기(View Outputs)]를 선택합니다.

AWS Command Line Interface(AWS CLI)에서 AWSSupport-TroubleshootSSH 자동화 실행

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootSSH" --document-version "\$DEFAULT" --parameters '{"InstanceId":["i-0a241ed9caf16f01e"],"Action":["FixAll"],"AllowOffline":["True"],"SubnetId":["SelectedInstanceSubnet"]}' --region us-east-1

AWSSupport-TroubleshootSSH 자동화에 대한 자세한 내용은 Smart RDP and SSH remediation with AWS Systems Manager Automation API actions를 참조하세요.


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


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