AWS

[AWS] EC2 ssh port 변경하기

hanrabong 2022. 1. 19. 16:42

 

 AWS EC2에서 ssh port를 변경시키는 방법에 대해서 이야기를 해보려고 합니다. ssh는 기본적으로 22번 포트에서 실행이 되지만, 보안이나 다른 이유에서 ssh 포트를 변경하고 합니다. 꼭 AWS가 아니라 다른 서버에서도 가능하지만, 현재 갖고 있는 물리적인 서버가 없기에 AWS EC2에서 진행을 해보려고 합니다.

 

 

필요한 것


  • AWS 계정

 

 

 

실습


 먼저, AWS에 접속하여 amazon linux2로 instance를 하나 생성해 줍니다. 생성을 할 때 기본 VPC가 있다면 기본 VPC에서 public subnet을 사용하면 됩니다. 기본 VPC가 없을 경우에는, 새로 생성한 VPC안에서 public subnet을 선택해 줍니다. public subnet을 선택하는 이유는 bastion server없이 편하게 들어가기 위해서 이므로 크게 의미 부여 안해도 됩니다. EC2 instance를 만들 때 pem키를 이용해서 만들어 줍니다.

 키 페어가 있는 경우는 기존 키 페어를 선택해주고 기존 키 페어가 없는 경우 새 키 페어를 생성해 줍니다.

 

 

 EC2 생성이 완료되었으면, EC2에 접속을 해줍니다. 접속 방법으로는 AWS console창이나 ssm을 이용해서 접속을 하거나 ssh명령어를 cmd창이나 terminal(ubuntu, mac에서)에 입력하여 접속을 할 수 있습니다. ssh 포트를 변경하는것이 목적이므로 ssh나 AWS console창을 통해서 접속을 해줍니다.

 

 접속을 한 후, ssh 설정 파일에 접속하여 Port를 변경 시켜줍니다. ssh 파일에 접속하는 명령어는 다음과 같습니다.

sudo vim /etc/ssh/sshd_config

 

파일에서 Port라고 명시되어 있는 곳을 원하는 포트 번호로 변경시켜줍니다. 저는 22222번으로 변경시켜주었습니다.

/etc/ssh/sshd_config

 

 변경을 한 후에 sshd를 다시 시작을 해주어야 변경된 포트가 적용이 됩니다. 명령어는 다음과 같습니다.

sudo systemctl restart sshd

 

 재시작을 해준 후 서비스 상태 확인 명령어를 이용하여 상태를 확인해줍니다.

sudo systemctl status sshd

 

 결과는 다음과 같이 나옵니다.

sshd status

 위의 사진을 보면 '4s ago'를 통해 4초 전에 다시 실행이 되었다는 것을 알 수 있고 밑에 port 22222를 통해 ssh port가 22222로 변경되었다는 사실을 알 수 있습니다.

 

 

포트를 변경한 후, 이제 다시 접속을 해보겠습니다. 명령어의 경우에는 다음과 같습니다.

ssh -i <pem key 위치> ec2-user@<ip 주소> -p <바꿔준 포트>

 

 제가 생성한 서버는 amazon linux 2이기에 user를 ec2-user로 사용하였고 ubuntu인 경우에는 user가 ubuntu가 됩니다. 정확하게 알아보기 위해서는 aws console에서 ec2 연결을 누른 후 ssh 클라이언트를 선택하면 ssh 명령어가 나옵니다. 이 명령어에서 -p 옵션을 사용하여 port를 명시해주면 됩니다.

인스턴스 연결(AWS Console)

 

 

ssh -i test1.pem ec2-user@3.38.253.68 -p 22222

 위의 명령어를 입력하면, 접속이 될 수도 있고 안될 수도 있습니다. 될 수도 있고 안될수도 있다니?? 그 이유는 바로 보안그룹 때문입니다. 처음에 기본으로 EC2를 만들면 서버의 접속을 위해 ssh 22번이 기본으로 생성이 됩니다. 위에서 ssh 접속을 할 때 22222번 포트를 사용하기에 보안그룹에 22222번 포트를 추가해줘야 합니다.

 

보안그룹 인바운드 규칙 추가

 

 위의 사진처럼 추가를 한 후 다시 명령어를 이용하여 접속을 해보겠습니다.

ec2 접속 후 cmd 창

 

짠!! 접속이 됩니다.