systemd에서 활성화했음에도 불구하고 부팅 중에 ssh.service가 자동으로 시작되지 않는 이유는 무엇입니까?

systemd에서 활성화했음에도 불구하고 부팅 중에 ssh.service가 자동으로 시작되지 않는 이유는 무엇입니까?

저는 Raspberry Pi 4에서 Debian 11을 사용하고 있습니다(이미지 발견)여기). sshd가 올바르게 구성되었으며(/etc/ssh/sshd_config만 편집했고 나머지는 시스템 설치에서 완전히 새로워졌습니다) 수동으로 시작할 때 올바르게 작동합니다. 그러나 부팅 시 systemd에 의해 자동으로 시작되지 않습니다.sudo systemctl 상태 sshd다음을 반환합니다.

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:sshd(8)
             man:sshd_config(5)

Journalctl의 출력에는 ssh와 관련된 내용이 없습니다.

이 내용은 다음과 같습니다./lib/systemd/system/ssh.service:

[Unit]
Description=OpenBSD Secure Shell server
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target auditd.service
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

[Service]
EnvironmentFile=-/etc/default/ssh
ExecStartPre=/usr/sbin/sshd -t
ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
ExecReload=/usr/sbin/sshd -t
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
RuntimeDirectory=sshd
RuntimeDirectoryMode=0755

[Install]
WantedBy=multi-user.target
Alias=sshd.service

파일sshd_not_to_be_run존재하지 않는다.네트워크.대상활성. 문제 해결을 위해 auditd도 설치했는데 자동으로 성공적으로 시작되지만 재부팅 후에도 ssh.service가 여전히 작동하지 않습니다.

아이디어가 부족해요…


업데이트:

방금 모든 연결 요구에 대해 sshd 프로세스가 생성된다는 것을 발견했습니다. 이는 systemd 자체에 의해 관리되며 일부 외국 컴퓨터가 내 컴퓨터에 연결을 시도할 때 저널에 명확하게 인쇄됩니다.

oct. 30 13:09:30 RaspServeur systemd[1]: Started OpenBSD Secure Shell server per-connection daemon (117.68.2.55:45784).
░░ Subject: L'unité (unit) [email protected]:22-117.68.2.55:45784.service a terminé son démarrage
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ L'unité (unit) [email protected]:22-117.68.2.55:45784.service a terminé son démarrage, avec le résultat done.
oct. 30 13:09:30 RaspServeur audit[1]: SERVICE_START pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='[email protected]:22-117.68.2.55:45784 comm="systemd" exe="/usr/lib/systemd/systemd" ho>
oct. 30 13:09:33 RaspServeur sshd[1861]: error: kex_exchange_identification: Connection closed by remote host
oct. 30 13:09:33 RaspServeur sshd[1861]: Connection closed by 117.68.2.55 port 45784
oct. 30 13:09:33 RaspServeur systemd[1]: [email protected]:22-117.68.2.55:45784.service: Succeeded.
░░ Subject: Unit succeeded
░░ Defined-By: systemd
░░ Support: https://www.debian.org/support
░░ 
░░ The unit [email protected]:22-117.68.2.55:45784.service has successfully entered the 'dead' state.
oct. 30 13:09:33 RaspServeur audit[1]: SERVICE_STOP pid=1 uid=0 auid=4294967295 ses=4294967295 subj==unconfined msg='[email protected]:22-117.68.2.55:45784 comm="systemd" exe="/usr/lib/systemd/systemd" hos>

이는 기본 구성으로 sshd의 병렬 설치가 존재하는 것과 같습니다. 사용할 특정 포트 번호와 같은 설정이 포함된 내 구성은 sshd.service를 수동으로 시작하지 않으면 작동할 수 없습니다. 하지만 기본 포트를 사용하여 해당 섀도우 SSHD에 성공적으로 연결할 수 있으며systemctl 상태 sshd여전히 죽은 서비스를보고합니다…

상황이 소름끼치게 됩니다. 이제 손가락 두 개만 있으면 SD 카드를 지우고 사전 구성이 덜한 다른 배포판의 이미지를 설치할 수 있습니다.

답변1

질문자님의 문제와 같은 문제일까요?질문 #442181가졌다? 즉, 바인딩하려는 인터페이스/주소가 아직 준비되지 않았기 때문에 sshd가 부팅 시 시작되지 않습니다. 서버 소켓에 비표준 포트를 지정했다고 언급하셨는데, 특정 네트워크 인터페이스 및/또는 IP 주소도 지정하셨나요?

하지만 왜 systemd가 표준 구성을 사용하는 연결별 데몬을 시작하는지 모르겠습니다. 제안한 대로 기본 시스템 구성의 일부일 수 있습니다. ~ 안에질문 #507705그들은 연결별 서비스 생성을 제공하는 기능인 시스템 "소켓 활성화"에 대해 이야기합니다. 라는 시스템 단위 파일을 찾으십시오 ssh.socket. man systemd.socket기능 작동 방식에 대한 정보를 얻는 데 사용할 수 있습니다 .

systemctl status ssh.socket편집: systemd의 SSH 서버 소켓이 활성화되어 있는지 확인하는 데 사용할 수 있어야 합니다 .

답변2

sshd를 수동으로 시작하면 systemd는 이를 시작된 것으로 등록하지 않으므로 systemctl에는 아무 것도 표시되지 않습니다. 각 sshd는 실제로 수신 프로세스이며 연결이 이루어진 후 이 연결을 처리하는 별도의 프로세스가 분기됩니다. 이를 반영하는 sshd 프로세스가 여러 개 있을 것 ps입니다. sshd-listener를 종료해도 연결을 처리하는 다른 sshd 프로세스는 계속 살아 있습니다.

sshd를 시작하고 systemctl을 수행하면 sshd를 시작합니다. 이는 2개의 SSHD를 시작하는 것과 동일하며 모두 동일한 포트를 사용하려고 하면 차단될 수 있습니다.

도움이 되었기를 바랍니다

관련 정보