리눅스 ssh 연결 포트 변경 방법

리눅스는 직접 콘솔에서 사용하기 보다는 주로 ssh로 붙여서 사용한다. ssh는 디폴트로 22번을 사용하는데 아무래도 보안상 좋지는 않기 때문에 변경해서 쓰는 경우도 많다.

1. sshd_config 파일 경로로 이동

sshd 프로세스 관련 설정은 sshd_config에서 한다. 경로는 아래와 같다.

/etc/ssh
sshd_config

설정 전 /etc/ssh 경로에서 sshd_config 파일을 백업한다. 설정을 바꿀 땐 무조건 백업을 하는 습관을 들이는 게 좋다.

[root@newhost ssh]# cp sshd_config sshd_config_20240305

2. sshd_config 수정

sshd_config 파일을 수정한다.

vim sshd_config

#Port 22 로 주석처리되어 있는 부분을 찾는다. 여길 변경하면 된다.

ssh port

10022번으로 바꿔보겠다.

10022번 변경

변경 사항을 저장한다.

포트 입력 라인 위로 포트 변경에 대해 SELinux 관련 설정이 필요하다는 안내를 볼 수 있다. 이 작업을 해줘야 한다.

# If you want to change the port on a SELinux system, you have to tell
# SELinux about this change.
# semanage port -a -t ssh_port_t -p tcp #PORTNUMBER

3. SELinux 설정

10022 포트로 변경할 거면

[root@newhost ssh]# semanage port -a -t ssh_port_t -p tcp 10022

이렇게 입력하면 한다. 이 작업을 하지 않으면 sshd 서비스 재시작이 되지 않는다.

4. sshd 재시작

sshd 서비스를 재시작한다.

[root@newhost ssh]# systemctl restart sshd

정상적으로 실행되면 이제 sshd는 10022번 포트로 붙는다.

5. 방화벽 작업

주의사항이다. 방화벽 작업을 잊어선 안 된다.

변경한 포트를 OS 방화벽에서 열어준다.

[root@newhost ssh]# firewall-cmd --permanent --zone=public --add-port=10022/tcp
success

reload 해서 변경 사항을 반영한다.

[root@newhost ssh]# firewall-cmd --reload
success

6. 주의사항

원격으로 sshd 작업을 할 때 되도록 연결된 세션을 하나 이상 유지해 놓는 게 좋다.

작업 후에 ssh 연결이 안 될 가능성을 대비하기 위해서다. 세션이 없으면 콘솔에 직접 붙어서 해야하는 아주 귀찮은 상황이 펼쳐질 수 있다.

가장 흔하게 할 수 있는 실수가 바로 방화벽 작업을 건너뛰고 세션을 닫은 후 연결이 안 되는 경우다.

관련 글

댓글 남기기