일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 체험학습
- cross compile
- 대만
- 둠
- 비욘드트러스트
- 스마트폰 리눅스
- 도쿄
- 갤럭시 핏2
- 페루
- ARM
- 일본
- 가족여행
- BSC100S
- 태블릿 리눅스
- Termux
- 한강
- ubuntu 24.04
- 아마추어무선
- 크로스 컴파일
- 휴양림
- 딸래미
- 어린이
- 제주도
- 한강 라이딩코스
- 박물관
- 여행
- 갤럭시 핏3
- FT-8
- iGPSPORT
- 캠핑
- Today
- Total
주희아빠의 헝그리 라이딩
Ubuntu 24.04 LTS - SSH 서버 Port 변경 하기 본문
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 서비스를 멈추려고 해도 안된다는 메세지가 나옵니다.
찾아보니 ubuntu 22.10 이후 ssh 가 ssh.socket 방식으로 바뀌었다고 합니다.
$ sudo systemctl stop ssh
Stopping 'ssh.service', but its triggering units are still active:
ssh.socket
자세한 내용은 아래에서 설명하기로 하고 우선은 /etc/ssh/sshd_config 파일 수정후 daemon-reload 를 먼저 해 주고 다음 단계를 수행합니다.
$ sudo vi /etc/ssh/sshd_config
Port 22 <- 다른 것으로 변경
$ 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
ssh.socket 방식으로 바뀌면서 sshd 서비스가 시작되기 전까지는 호출을 안하고 있어 메모리를 아낄 수 있다는데, 아니 sshd 가 필요 없는 사람이야 설치를 안 했을테고 필요해서 설치한 사람이면 결국 실행할 텐데... 저같은 옛날 사람들은 이걸 왜 고쳤냐고 구시렁 거립니다.
$ sudo vi /etc/systemd/system/ssh.socket.d/listen.conf
[Socket]
ListenStream=1234
$ sudo systemctl daemon-reload
$ sudo systemctl restart ssh
그런데 워낙 불만들이 많았는지 최신 버전에서는 이마저도 필요 없어지고 다시 예전 방법인 sshd_config 수정으로 원복되었습니다. 위에서 설명한 대로 daemon-reload 만 잘해 주면 됩니다.
ssh.socket 동작 방식을 철회하고 예전 방식인 ssh.service 로 돌리는 방법도 있지만 이건 대세를 거스리는 일이니 추천하지 않습니다.
$ sudo systemctl daemon-reload
$ sudo systemctl disable ssh.socket
$ sudo systemctl stop ssh.socket
$ sudo systemctl enable ssh.service
$ sudo systemctl start ssh.service
참고 링크.
https://askubuntu.com/questions/1439461/ssh-default-port-not-changing-ubuntu-22-10
https://discourse.ubuntu.com/t/sshd-now-uses-socket-based-activation-ubuntu-22-10-and-later/30189/39
'나름 IT 이야기' 카테고리의 다른 글
WSL 에 Ollama 설치후 '라즈베리파이' 에서 서비스하기 (0) | 2024.06.16 |
---|---|
Windows 10, Ubuntu 듀얼 부팅 구성 및 여러가지 트러블 슈팅 (0) | 2024.05.05 |
Ubuntu 24.04 LTS - 한글 입력기 설치 (2) | 2024.05.01 |
마이크로컨트롤러의 조상 8051 시뮬레이터 EdSim51 그리고 Keil Compiler (0) | 2024.04.20 |
삼성 갤럭시 핏2 vs 핏3 비교 (0) | 2024.04.10 |