[AWS] SK 브로드밴드 EC2 SSH 접속 Issue

HeeJun·2023년 5월 15일
0

AWS

목록 보기
1/1

오늘은 Docker 컨테이너에 대한 연습을 위해 AWS EC2 인스턴스를 생성하고 ssh 기본 Port인 22번 Port를 통해 접속하던 중 Connection Time Out Issue가 발생했다.

이전에 웹 서비스 관련 프로젝트를 진행하면서 EC2 인스턴스를 사용할 때는 만나지 못한 문제였는데 곰곰히 생각해보니 그때랑 달라진 것은 KT에서 SKT로 인터넷을 변경한 점이였다.

바로 관련 내용을 찾아보니 SKT 인터넷이 기본적으로 유명한 기본 Port 몇개를 막아 놓았는데 그중 ssh 기본 Port인 22번 Port 또한 막혀있었다.

AWS 웹에서 지원하는 인스턴스 연결을 통해 웹페이지에서 EC2 인스턴스에 접속해 ssh 기본 Port 번호를 변경하는 것으로 해결했다.

  1. EC2 인스턴스 생성 후 웹에서 인스턴스에 접속

    인스턴스를 생성 후 인스턴스를 선택하고 상단의 연결 탭을 선택하면 웹 페이지에서 EC2에 접속할 수 있다.

  2. 인스턴스의 ssh 기본 Port 번호 변경

sudo vi /etc/ssh/sshd_config

Linux Console에서 root 권한으로 ssh 설정 파일을 열면 아래와 같이 ssh 설정 파일이 열린다

상단부터 쭉 보면 중간에 "#Port 22" 부분이 보인다
우리는 이 부분의 주석을 지우고 "Port 원하는 Port 번호"로 변경하면 된다(10000번대 이상을 권장)

원하는 Port 번호로 변경했다면 이제 :wq를 통해 파일을 저장하고

sudo systemctl restart sshd

위 명령을 입력해 sshd 프로세스를 재시작 해주면 된다.

  1. 보안그룹 인바운드 규칙 추가
    위의 과정을 다해도 우리는 ssh 변경 Port로 접속 할 수 없다.
    왜냐하면 EC2로 들어가는 인바운드 규칙에 우리가 바꿔준 Port를 열어주지 않았기 때문이다.

AWS 웹에서 인스턴스를 선택 후 아래의 보안 탭을 선택 후 뭔가 클릭이 될 것 같은 보안 그룹을 선택해 들어가면

위와 같이 인바운드 규칙과 아웃바운드 규칙을 편집 할 수 있는 페이지가 나온다.
우리는 인바운드 규칙 편집을 선택 후

새로운 규칙으로 TCP/IP 우리가 설정한 Port 번호 Anywhere-IPv4를 선택해 새로운 인바운드 규칙을 추가하면 된다.

모든 설정을 끝마치면 아래와 같이 제대로 AWS EC2 인스턴스에 잘 접속이 되는 모습을 확인 할 수 있다.

이렇게 ssh 기본 Port를 변경하고 나면 웹에서는 더 이상 인스턴스에 연결 할 수 없다.

브라우저 기반 SSH 연결은 EC2 Instance Connect 서비스를 통해 사용자의 인스턴스를 리다이렉션하여 접속하게 됩니다. 아래의 과정을 거쳐 브라우저에서 인스턴스로 접속하게 되는데 22번 Port가 ssh 접속 기본 Port가 아니기에 연결이 되지 않는다.

[고객님 PC] ---<TCP/443>---> [AWS Web Console: EC2 Instance Connect] ----<TCP/22>---> [EC2 Instance]

사실 인터넷 제공 회사의 차이로 이런 일이 발생할 것이라고는 상상도 못해서 조금 새로운 Issue를 만나 해결하는 과정이 흥미로웠다.

하지만 나는 기회가 되면 꼭 KT로 변경할 것이다. 인스턴스를 새로 생성할 때마다 귀찮게 이 작업을 반복하는 것은 내 정신건강에 좋지 않을 것 같다....

profile
내가 작성한 코드 한 줄로 누군가를 편하게

0개의 댓글