【AWS】EC2 인스턴스 SSH 접속 에러를 해소(ssh: connect to host xxx.xxx.xxx.xxx port 22: Operation timed out)

2048 단어 SSH오류AWS

소개



Rails 앱을 AWS에서 배포하려고 시도했던 과정에서 EC2 서버에 로컬 환경에서 액세스(SSH 연결)하려고 할 때 갑자기 액세스할 수 없게 된다는 문제가 발생하여 해결 방법과 함께 남아 있습니다.
(꽤 초보적인 부분이라고 생각합니다.)

원인은 장소를 이동해 작업한 것(접속 장소에 의해 IP 주소가 차이가 있었던 것)에 있었습니다.
아래에서 자세한 내용을 씁니다.

※필자는 Mac을 사용하고 있어, 접속 방법은 Mac의 사양으로 하고 있습니다.

어떤 오류가 발생했습니까?



로컬 환경 (MacBookAir)에서 해당 EC2 인스턴스에 SSH 키를 사용하여 SSH 연결을 시도합니다.
# ターミナルにて

$ ssh -i .ssh/ファイル名.pem [email protected](該当EC2インスタンスのパブリックIP)

ssh: connect to host xxx.xxx.xxx.xxx port 22: Operation timed out

그러면, "연결 조작이 타임 아웃했다"라는 내용의 에러 메시지가 나오고 접속할 수 없다.

조금 전(1시간 정도 전)까지 접속되어 있었는데 왜? ! !

되었다.

오류 원인



원래 작업했던 장소에서 카페로 이동하여 작업을 시작하고 그 때 일어난 오류.
해당 EC2 인스턴스의 보안 그룹, SSH 접속 설정과 자신의 접속원(IP 주소)에 문제가 있었다.

좀 더 구체적으로 말하면,
원래 위치에서 최초의 설정으로, 해당 EC2 인스턴스의 보안 그룹의 인바운드 룰의 SSH 접속의 소스(접속원)를 「마이 IP」에 한정하고 있었다. 이에 따라, 그 작업 장소의 IP 어드레스로부터가 아니면 SSH 접속을 할 수 없는 설정이 된다.
자신이 원래 작업하고 있던 장소를 이동해, 이동처의 wifi로 작업을 개시해 SSH 접속을 하려고 했는데, 소스(접속원의 IP)가 바뀌어 버렸기 때문에, 접속원의 허가가 되어 그렇지 않고 오류가 발생했습니다.

해결 방법



그 접속원의 허가 설정을 이동처의 IP 어드레스에 맞추어 재설정했다.

①AWS 해당 EC2 인스턴스의 보안 그룹에서 "인바운드 규칙 편집"을 클릭
② 타입 : SSH 소스에서 다시 "내 IP"를 다시 선택한다.
③ 규칙 저장을 클릭



이렇게 하면 작업 중인 위치의 IP 주소에서 SSH 연결을 허가하게 되어 연결 가능하게 되었다.
$ ssh -i .ssh/ファイル名.pem [email protected](該当EC2インスタンスのパブリックIP)

[ec2-user@ip-xx-xx-xx-xx ~]$

마지막으로



SSH 키를 소유하고 있기 때문에 보안 그룹의 인바운드 규칙을 '임의의 장소'로 하는 것도 우선 부정하게 이용되는 일은 없다고 생각합니다만, '내 IP'로 한정해 두었다 쪽이 무난하다고 생각합니다(만일, 키가 유출했을 때의 위험성 등도 고려해).
다만, 접속원(장소, wifi 등)을 변경했을 때에 이 작업을 매회 해야 하기 때문에 조금 귀찮습니다.

이 오류가 발생했을 때 조금 더 네트워크에 대해 공부했습니다.

실수, 지적 등 있으면 부담없이 코멘트 등 주실 수 있으면 다행입니다.
고마워요.

좋은 웹페이지 즐겨찾기