참고: https://seongduck.tistory.com/480
ubuntu 24.04야.
sudo systemctl restart sshd는 실패할거야.
sudo systemctl list-unit-files | grep ssh를 하면 ssh.socket과 ssh.service가 결과에 포함되어야 해.
없으면 ssh 서버 패키지가 미설치된거야.
sudo apt update
sudo apt install openssh-server -y
sudo systemctl enable --now ssh.socket # ssh.socket을 enable 상태로 바꿈
ubuntu 24.04 lts부터는 ssh 서비스 관리 방식이 기존의 상시 대기형 서비스(service)에서 systemd socket activation 방식으로 변경되었다고 해.
평소에는 ssh.service가 꺼져있다가, 외부에서 ssh 포트로 접속 요청이 들어오면 ssh.socket이 감지해서 서비스를 동적으로 켜는거야.
그래서 소켓이 정상 작동 중인지 확인해야 해.
sudo systemctl status ssh.socket # ssh 소켓 상태 확인
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
그리고 소켓 설정이 우선권을 가지기 때문에, sshd_config 파일에서 Port를 수정하는 것만으로는 포트 변경이 적용되지 않아.
해당 파일도 수정하고, 소켓 설정도 수정해야 해.
sudo systemctl edit ssh.socket
에디터 창의 빈 공간에 아래 블록이 그대로 있어야 해.
[Socket]
ListenStream=
ListenStream=0.0.0.0:포트번호
ListenStream=[::]:포트번호
설정 반영하고 소켓을 재시작해야지
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket
방화벽이 설정되어 있는 경우, 서버에 접속하지 못할 수 있으므로 새 포트를 허용해줘야 해.
sudo ufw allow 포트번호/tcp
sudo ufw reload # 방화벽 재적용
sudo ss -tlnp | grep 12345 # 정상적으로 변경된 포트가 열려있는지 확인(ssh는 연결이 되어야 그제서야 service가 되니까, 그 전에는 포트로 확인해야 해)
참고로 sudo ufw reload했는데 방화벽이 사용 중이지 않다는 건, 방화벽이 꺼져 있다는 얘기야. 접속에는 문제가 없지.
근데 로컬 pc니까 방화벽은 켜놓아야겠지?
sudo ufw enable
sudo ufw status verbose
ssh 계정명@ip주소 -p 포트번호가 되어야 해.
--완--
'컴퓨터' 카테고리의 다른 글
| SQLAlchemy와 커넥션풀 (0) | 2026.09.04 |
|---|---|
| [Web] 웹 인증 방식 총정리: Cookie, Session, Token부터 JWT 실무 전략(RTR, Blacklist)까지 (0) | 2026.08.31 |
| 프로젝트 리펙토링 (0) | 2026.08.23 |
| '클로드 코드 제대로 쓰는 법 | 5가지 필수 설정' 정리 (0) | 2026.08.16 |
| Claude Code 기반 백엔드 개발: 포트폴리오 자동화 (0) | 2026.08.16 |