저는 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는 실제로 연결이 설정된 후 연결을 처리하는 별도의 프로세스로 분기되는 수신 프로세스입니다. ps
여러 sshd 프로세스가 있는 경우 이를 반영합니다. sshd 리스너를 종료해도 연결을 처리하는 다른 sshd 프로세스는 계속 활성화됩니다.
sshd를 시작하고 systemctl을 실행하면 sshd를 시작합니다. 이는 2개의 sshd를 시작하는 것과 동일하며 둘 다 동일한 포트를 사용하려고 하면 차단될 수 있습니다.
도움이 되길 바랍니다