Ubuntu 22.10 부터, 보다 정확히는 openssh-server 1:9.0p1-1ubuntu1부터 OpenSSH 설정이 달라졌습니다.
참조: https://discourse.ubuntu.com/t/sshd-now-uses-socket-based-activation-ubuntu-22-10-and-later/30189
위 글에 따르면 기본적으로 systemd socket activation을 사용하도록 바뀌었다고 합니다. 요청이 들어오기 전까지는 sshd를 실행시키지 않는 방식으로, 그 덕분에 메모리 소비를 최소 3MiB 줄일 수 있다고 합니다.
기본 설정이 바뀌었으므로 port를 변경하기 위한 방법도 달라졌습니다. 그래서 22.10 전 버전의 방식대로 /etc/ssh/sshd_config 파일을 수정하더라도 반영되지 않습니다.
두 가지 해결 방법이 있습니다.
1. 이전 버전으로 OpenSSH 설정을 되돌린다.
OpenSSH를 Ubuntu 22.10 전 방식으로 설정합니다. ssh.socket을 비활성화시키고, ssh.service를 활성화하는 식입니다.
systemctl disable --now ssh.socket
systemctl enable --now ssh.service
/etc/ssh/sshd_config 파일을 엽니다.
vi /etc/ssh/sshd_config
port 라인을 주석 해제한 후, 원하는 port로 변경합니다.
#...
#Port 22
#...
저는 31415 port로 변경해보겠습니다.
#...
Port 31415
#...
이제 ssh를 다시 시작합니다.
sudo systemctl restart ssh
2. ssh socket 설정 파일 변경
디렉토리를 생성합니다.
mkdir -p /etc/systemd/system/ssh.socket.d
생성한 디렉토리 내부에 listen.conf 파일을 작성합니다.
vi /etc/systemd/system/ssh.socket.d/listen.conf
[Socket]
ListenStream=
ListenStream=31415
파일이 수정되었으므로 daemon을 리로드하고, ssh.socket을 다시 시작합니다.
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket접속이 되지 않는 경우
여전히 접속이 되지 않는 경우 방화벽 설정(ex. ufw)을 살펴봅니다. 방화벽이 동작중인지, 동작중이라면 사용할 port의 접속이 허용되어 있는지 확인합니다.
ufw
ufw 동작 상태 확인sudo systemctl status ufwufw 룰 확인
sudo ufw status verbose
댓글 없음:
댓글 쓰기