주희아빠의 헝그리 라이딩

Ubuntu 24.04 LTS - SSH 서버 Port 변경 하기 본문

나름 IT 이야기

Ubuntu 24.04 LTS - SSH 서버 Port 변경 하기

도림천 버섯돌이 2024. 5. 1. 11:17

2024.5.1

최근 배포되는 리눅스 데스크탑 배포본에서는 sshd 서비스가 설치되지 않습니다. 필요한 사람들이 직접 설치하는게 맞겠지요.

Ubuntu 24.04 에 sshd 설치를 진행해 봅니다. 사실 방법 자체는 매우 쉽지만 중간에 살짝 바뀐 것이 있어서 정보 납깁니다.

 

일단 ssh 가 정말 없나 확인을 해 보고 설치를 진행합니다. 

-- 서비스 확인
$ systemctl status ssh
Unit ssh.service could not be found.

-- ifconfig 나 netstat 등 자주 사용하는 net 관련 명령어
$ sudo apt install net-tools

-- openssh 서버 설치
$ sudo apt install openssh-server

 

-- 22번 포트가 살아 있는지 확인
$ netstat -an|grep LIST
tcp6       0      0 :::22                   :::*                    LISTEN 
...중략

-- 서비스 정보 확인
$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/usr/lib/systemd/system/ssh.service; disabled; preset: enabled)
     Active: active (running) since Wed 2024-05-01 10:05:38 KST; 17s ago
TriggeredBy: ● ssh.socket
       Docs: man:sshd(8)
             man:sshd_config(5)
    Process: 9419 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
   Main PID: 9421 (sshd)
      Tasks: 1 (limit: 4499)
     Memory: 1.2M (peak: 1.4M)
        CPU: 82ms
     CGroup: /system.slice/ssh.service
             └─9421 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

 5월 01 10:05:38 multitab-Acer systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
 5월 01 10:05:38 multitab-Acer sshd[9421]: Server listening on :: port 22.
 5월 01 10:05:38 multitab-Acer systemd[1]: Started ssh.service - OpenBSD Secure Shell server.

 

여기까지 하고 마치면 끝이긴 한데 보통은 ssh 의 경우 22번 기본 포트를 그대로 사용하지 말고 다른 것으로 변경하기를 권장합니다.

이전에는 다음 경로의 파일을 수정하고 ssh 서비스를 재시작하면 됐는데 ubuntu 24.04 에서는 그게 안되네요.

$ sudo vi /etc/ssh/sshd_config

Port 22 <- 다른 것으로 변경

$ sudo systemctl restart ssh


ssh 서비스를 멈추려고 해도 안된다는 메세지가 나옵니다. 찾아보니 ssh 가 ssh.socket 방식으로 바뀌었다는데 뭔가 더 좋게 하려고 수정한거 같은데 저같은 옛날 사람들은 이걸 왜 고쳤냐고 구시렁 거립니다.

$ sudo systemctl stop ssh
Stopping 'ssh.service', but its triggering units are still active:
ssh.socket

 

어쨌든 sshd 포트를 변경하려면 다음 파일을 수정해 주어야 합니다.

$ sudo vi /lib/systemd/system/ssh.socket 

[Socket]
ListenStream=20022
Accept=no
FreeBind=yes

$ sudo systemctl daemon-reload
$ sudo systemctl restart ssh

-- ssh 서비스 확인.
$ sudo systemctl status ssh

 

여전히 안되는 경우에는 명시적으로 ssh.socket 을 먼저 내려줍니다.

-- ssh.socket 를 먼저 내려줌
$ sudo systemctl stop ssh.socket
$ sudo systemctl stop ssh

-- ssh 서비스 시작
$ sudo systemctl start ssh

-- ssh 서비스 확인
$ sudo systemctl status ssh
$ netstat -an|grep LIST

 

sshd_config 를 전체적으로 안쓰지는 않을텐데요. port 관련 내용만 이렇게 바뀐 것인지 좀 더 확인해 보고 업데이트하도록하겠습니다.

 

반응형