본문 바로가기

Bigdata Hadoop

Unit sshd.service could not be found 에러 해결

반응형

 

[ssh -V] 명령어를 통해 확인할 경우 업그레이드한 버전에 대해 적용된 상태로 보여진다. 

 

goodtech@goodtech-desktop:~$ ssh -V
OpenSSH_9.6p1 Ubuntu-3ubuntu13.4, OpenSSL 3.0.13 30 Jan 2024

 

하지만 systemctl status sshd를 통해 확인하면 Unit sshd.service could not be found. 라고 출력된다. 물론 disable 상태다.  

해당 메시지가 나타나는 이유는 새로 설치한 OpenSSH가 시스템 서비스로 등록되지 않았기 때문이다.

 

OpenSSH를 소스에서 설치하면 서비스 파일을 수동으로 설정해줘야 한다. 

 

1. 서비스 파일 생성 

 

sudo nano /etc/systemd/system/sshd.service

 

 

위 명령어로 서비스 파일을 생성하고 아래 코드를 입력한다. # 이하 모두 지워준다.

 

[Unit]
Description=OpenSSH server daemon  # 서비스의 설명을 제공하는 항목으로, 시스템 관리자에게 서비스가 무엇인지 알려준다
After=network.target               # 이 서비스가 네트워크 서비스가 시작된 후에 시작되도록 설정(네트워크가 필요하기 때문)

[Service]
ExecStart=/usr/local/sbin/sshd -D  # 서비스가 시작될 때 실행할 명령을 지정. 여기서는 OpenSSH 데몬을 포그라운드 모드(-D)로 실행
ExecReload=/bin/kill -HUP $MAINPID # 서비스를 다시 로드할 때 실행할 명령을 지정. 여기서는 메인 프로세스에 HUP 신호를 보내서 설정을 다시 로드
KillMode=process                   # 서비스가 중지될 때 개별 프로세스를 종료. 
Restart=on-failure                 # 서비스가 실패했을 때 자동으로 재시작하도록 설정.
RestartSec=42s                     # 서비스가 실패한 후 재시작하기 전에 대기할 시간을 초 단위로 지정. (42초 대기)

[Install]
WantedBy=multi-user.target         # 이 서비스가 다중 사용자 모드에서 실행되도록 지정. multi-user.target는 시스템이 기본적으로 부팅되는 목표

 

 

주석 제거한 코드

 

[Unit]
Description=OpenSSH server daemon
After=network.target 

[Service]
ExecStart=/usr/local/sbin/sshd -D  
ExecReload=/bin/kill -HUP $MAINPID 
KillMode=process                   
Restart=on-failure                
RestartSec=42s                     

[Install]
WantedBy=multi-user.target

 

 

2. 서비스 파일 재로드

 

새로 생성한 서비스를 systemd에 인식시킨다. 

 

sudo systemctl daemon-reload

 

3. 서비스 시작 및 상태 확인 + 부팅 시 자동 시작 설정 

 

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd #부팅될 때 자동으로 SSH 서버가 시작되도록 설정

 

이렇게 하면 깔끔하게 접속할 수 있다.

 

참고 문서

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^