리눅스(Linux)의 ssh 접속시 포트를 변경하는 방법을 알아봅니다.


! 포트를 변경하는 이유는?
사용하기 편리함의 목적보다도 보안상의 이유가 크다고 할 수 있습니다. 즉 외부에서 ssh로 서버에 접속 가능한 계정 정보가 혹시 노출되더라도 포트 번호를 표준 포트로 사용하였을 때와 변경된 임의의 포트를 사용할 경우가 보안상 훨씬 유리하기 때문이죠. 이런 이유로 ssh 뿐만 아니라 외부 접속이 가능한 모든 포트들은 표준 포트가 아닌 다른 포트로 변경하여 사용하는 것이 좋습니다.



# 리눅스 ssh 포트 변경하기
ssh 포트 변경을 위해서는 아래의 과정들이 필요합니다.

- ssh 설정 파일로 이동하기
- ssh 설정 파일 편집
- 포트 번호를 원하는 다른 포트로 설정
- 저장 후 ssh 재시작


그럼 하나씩 아래에서 순서대로 알아봅니다.
 
@ ssh설정 파일로 이동하기
리눅스에서 ssh의 설정 파일은 아래에 위치합니다.
/etc/ssh/sshd_config

해당 경로로 이동한 후 설정 파일을 수정하도록 합니다.


@ ssh 설정 파일 편집하기
파일 편집을 위해서 아래의 명령어를 입력합니다.
vim sshd_config

설정 파일에서 Port 22가 입력된 줄을 찾은 후 원하는 포트로 바꾸어 입력하도록 합니다.
Ex) 포트 22220으로 변경하는 경우 => Port 22를 Port 22220으로 수정

@ 포트 번호를 다른 포트로 설정
ssh 포트를 변경할 경우 충돌 등의 이슈를 피하기 위해 반드시 현재 사용하고 있지 않은 포트를 입력해야합니다. 잘 모르는 경우라면 일반적으로 사용하지 않는 50000~65535까지의 번호로 설정하는 것이 좋습니다.


@ 저장 후 ssh 재시작
이제 설정이 변경되었으니 ssh 서비스를 재시작합니다.
// Ubuntu, Debian
systemctl restart sshd

// CentOS, Fedora
systemctl restart ssh

시스템을 재시작 한 후에는 변경된 포트가 잘 동작하는지 확인하도록 합니다. systemctl status ssh 명령어로 확인할 수 있습니다. 그 외에도 아래와 같은 netstat 명령어를 사용하는 방법으로 확인이 가능합니다.


! netstat로 ssh 포트 확인하기
netstat을 사용하여 열려있는 ssh 소켓을 네트워크에서 검색할 수 있습니다. 만약 변경된 포트가 22220인 경우라면 아래와 같죠.
netstat -nlpt | grep 22220

그래도 확인이 더 필요하다면? 가장 확실한 방법은 직접 ssh로 접속해보는 것입니다.
ssh -p 22220 <user>@<Host URL>

잘 접속된다면 ssh 포트가 잘 변경되었다고 생각할 수 있습니다.


!!! 알아둘 것 !!!
서버 호스팅 및 클라우드 서비스를 사용중 인 경우라면? 해당 업체의 보안 포트를 변경해두어야 합니다. 즉 사용하지 않는 포트를 닫고 변경된 포트를 새롭게 추가해야만 외부에서 접근이 가능합니다. 잊지 않고 꼭 변경하도록 합니다!!


이제 ssh 포트 변경은 모두 끝났습니다. 여기까지 ssh 포트 변경 방법에 대하여 알아보았습니다.