[ssh] EC2 인스턴스에 액세스하려고 할 때 시간 초과의 가능한 이유

내 인스턴스에 SSH를 사용할 수 없습니다. 작업 시간이 초과되었습니다. 그 이유는 무엇이며 해결하려면 어떻게해야합니까? 재부팅은 일반적으로 적용하는 데 오랜 시간이 걸리며 상황을 악화시킬 수 있습니다.

업데이트 : 권한에 관한 것이 아닙니다. 정상적으로 로그인 할 수 있습니다. 기억력 문제 때문인 것 같습니다



답변

인스턴스에 적절한 보안 그룹을 설정 했습니까? 즉, 네트워크에서 인스턴스의 포트 22 로의 액세스를 허용하는 것입니다. (기본적으로 모든 트래픽이 허용되지 않습니다.)

업데이트 : 보안 그룹 문제가 아닙니다. 그러나 동일한 AMI에서 다른 인스턴스를 시작하고 이에 액세스하려고하면 문제가 지속됩니까? 이 특정 EC2 인스턴스가 어떤 식 으로든 무작위로 실패했을 수 있습니다. 그런 일이 발생하는 것은 시간 문제 일뿐입니다. (권장 자료 : Architecting for the Cloud : Best Practices (PDF), Amazon의 웹 서비스 전도사 인 Jinesh Varia의 논문. 특히 “Design for failure and nothing will fail”섹션을 참조하십시오.)


답변

나는 같은 문제가 있었고 해결책은 내 로컬 컴퓨터의 IP를 활성 보안 그룹의 인바운드 규칙 목록에 추가하는 것이 었습니다. 아래 인바운드 대화 상자에서 포트 범위에 22를 입력 하고 소스 필드에 로컬 IP / 32를 입력하고 드롭 다운에 ‘custom tcp rule’을 남겨 둡니다.

여기에 이미지 설명 입력


답변

파괴하고 새로 만들기

연결할 수있는 가용성 영역과 연결할 수없는 영역이 있습니다. 몇 시간 후 너무 답답해서 해당 가용성 영역의 모든 항목을 삭제했습니다.

모든 것을 다시 구축하기 위해 모든 것을 만들어야했습니다. 여기에는 다음이 포함됩니다.

  • VPC 생성
    • CIDR: 10.0.0.0/24
  • 인터넷 게이트웨이 생성
  • 인터넷 게이트웨이VPC에 연결
  • 라우팅 테이블 생성
  • 추가 항로라우팅 테이블
    • Destination: 0.0.0.0/0
    • Target: <Internet Gateway from earlier>
  • 서브넷 생성
    • CIDR: 10.0.0.0/24
    • Routing Table: <Routing Table from earlier

이 모든 것을 얻으려면 많은 것을 더듬어 야했습니다. 가장 효율적이라고 생각하는 방식으로 단계를 주문했지만 다음 항목에 사용할 수있는 항목을 얻으려면 단계를 조정해야 할 수도 있습니다.

암시

나는 당신이 나처럼 열핵을 사용하라고 제안하는 것이 아닙니다. 이 모든 정보를 제공하여 이러한 연결이 적절한 지 확인할 수 있도록합니다.


답변

이 대답은 나 같은 어리석은 사람들을위한 것입니다. EC2의 퍼블릭 DNS는 다시 시작될 때 변경 될 수 있습니다. 이를 인식하지 못하고 기존 공용 DNS에 SSH를 시도하면 연결이 중단되고 시간이 초과됩니다. 이로 인해 EC2 또는 보안 그룹에 문제가 있다고 가정하거나 … 아니요, 새 DNS에 SSH로 연결하면됩니다. ~/.ssh/config필요한 경우 파일을 업데이트하십시오 !


답변

연결하려면 다음과 같이 ssh를 사용하십시오.

ssh -i keyname.pem username@xxx.xx.xxx.xx

keyname.pem개인 키의 이름은 어디에 있습니까? usernameOS 배포에 대한 올바른 사용자 이름 xxx.xx.xxx.xx은 공용 IP 주소입니다.

시간이 초과되거나 실패하면 다음을 확인하십시오.

보안 그룹

tcp 포트 22 및 모든 ip 또는 ip에 대한 인바운드 규칙이 있는지 확인하십시오 . 인스턴스 옵션의 ec2 메뉴를 통해 보안 그룹을 찾을 수 있습니다.

라우팅 테이블

vpc의 새 서브넷의 경우 0.0.0.0/0이 인터넷 게이트웨이 target 을 가리키는 라우팅 테이블로 변경해야합니다 . vpc에서 서브넷을 만들 때 기본적으로 인터넷에서 들어오는 트래픽을 허용하지 않는 기본 라우팅 테이블을 할당합니다. vpc 메뉴에서 라우팅 테이블 옵션을 편집 한 다음 서브넷을 편집 할 수 있습니다.

탄력적 IP

vpc의 인스턴스의 경우 퍼블릭 탄력적 IP 주소 를 할당하고 이를 인스턴스와 연결해야합니다. 사설 IP 주소는 외부에서 접근 할 수 없습니다. ec2 메뉴 (인스턴스 메뉴 아님)에서 탄력적 IP를 얻을 수 있습니다.

사용자 이름

올바른 사용자 이름을 사용하고 있는지 확인하세요 . ec2-user또는 root또는 중 하나 여야합니다 ubuntu. 필요한 경우 모두 시도해보십시오.

개인 키

올바른 프라이빗 키 (인스턴스를 시작할 때 다운로드하거나 선택하는 키)를 사용하고 있는지 확인합니다 . 당연한 것 같지만 복사 붙여 넣기가 두 번 나왔습니다.


답변

인스턴스의 콘솔 출력을 보셨습니까? AWS 콘솔을 통해이 작업을 수행 할 수 있습니다 (인스턴스-> 인스턴스를 마우스 오른쪽 버튼으로 클릭-> 시스템 로그 가져 오기). EC2 인스턴스의 네트워크 서비스가 올바르게 시작되지 않아 SSH 연결 시간이 초과되는 경우가있었습니다. 인스턴스를 다시 시작하면 일반적으로 문제가 해결되었습니다.


답변

여기에 이미지 설명 입력

2 시간 후 나는 이것을 발견했다

참고로 ssh ip 120.138.105.251/32

  • aws 인스턴스 IP 주소가 아닙니다.

  • 그것은 당신의 지역 IP가 아닙니다 127.0.0.1

  • 그것은 당신의 지역 IP가 아닙니다 localhost

그러나 그러나

그것의 당신의 당신의 공용 IP 주소를 개인 컴퓨터가 있는 당신은 액세스 AWS 인스턴스에 노력

  1. 이동 https://www.whatismyip.com/ 에서 어떤 IP 주소를 넣어 SSH

모든 IP 주소에 대해 SSH를 완전히 열려면
여기에 이미지 설명 입력

이것이 바로 접근 가능한 항목의 모양입니다. 기본 권장 사항입니다.
여기에 이미지 설명 입력

이것이 제가 생산에서 사용하고있는 것입니다.
여기에 이미지 설명 입력