내 장치에서 ssh를 사용하고 sshd를 사용하여 sshd를 시작할 수 있지만 systemctl start sshd
부팅 시 자동으로 시작되기를 원합니다. 문제는 시도하면 sudo systemctl enable sshd
다음 오류가 발생한다는 것입니다.
Failed to enable unit: File /etc/systemd/system/multi-user.target.wants/sshd.service already exists.
장치가 부팅될 때 SSH 서버가 시작되도록 이 문제를 해결하려면 어떻게 해야 합니까?
sudo systemctl status sshd
편집: 부팅 후 즉시 실행했을 때의 출력은 다음과 같습니다.
○ sshd.service - OpenSSH Daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
답변1
sshd.service - OpenSSH Daemon
Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
이는 서비스가 현재 비활성화되어(= 시작하도록 구성되지 않음) 실행되고 있지 않음을 의미합니다.
정보
Failed to enable unit: File /etc/systemd/system/multi-user.target.wants/sshd.service already exists.
/etc/systemd/system/multi-user.target.wants/sshd.service
이미 존재 함을 나타냅니다 . 그에 따라 서비스가 비활성화되었기 때문에 거기에 있어서는 안 됩니다 systemctl
.
/etc/systemd/system/multi-user.target.wants/
의 모든 파일은 서비스가 활성화된 실제 파일에 대한 심볼릭 링크 여야 합니다 . 실제로 활성화되지 않았기 *.service
때문에 sshd.service
이것은 깨진 심볼릭 링크이거나 그 안에 배치된 다른 파일(우연히 또는 악의적으로)임을 나타냅니다.
ls -l /etc/systemd/system/multi-user.target.wants/sshd.service
깨진 기호 링크인지, 다른 서비스나 다른 파일에 대한 링크인지 확인하려면 a를 실행해야 합니다 . 다른 유효한 파일에 대한 링크로 보이는 경우 *.service
악의적인 작업이 진행 중일 수 있습니다. 즉, 시스템이 해킹되었을 수 있습니다. 관련이 없는 임의의 파일인 것처럼 보이면 루트로 실행된 잘못된 명령의 결과일 수 있습니다.
시스템이 해킹된 것으로 보이는 경우 다음을 참조하세요.
- 감염된 서버를 처리하는 방법은 무엇입니까?서버 장애 시
- 감염된 서버를 처리하는 방법은 무엇입니까?정보 보안 석사
아무튼 그 이후로/etc/systemd/system/multi-user.target.wants/sshd.service
~해야 한다실제 항목에 대한 심볼릭 링크이므로 sshd.service
삭제해도 안전합니다.
sudo rm /etc/systemd/system/multi-user.target.wants/sshd.service
systemd
삭제로 인해 혼란을 겪지 않도록 잘못된 링크/파일을 삭제한 후 systemd 구성을 다시 로드하는 것이 현명할 수 있습니다 .
sudo systemctl daemon-reload
그런 다음 정상적으로 활성화할 수 있습니다 sshd.service
.
sudo systemctl enable sshd.service
답변2
Arch Linux에서는 먼저 SSH 소켓을 비활성화해야 한다고 생각합니다.
루트 사용자로 다음을 수행합니다.
systemctl disable sshd.socket
systemctl enable sshd.service
답변3
sudo rm /etc/systemd/system/multi-user.target.wants/sshd.service
sudo systemctl enable sshd