두 번째 openssh 서버 소스를 수정하고 debian에서 실행해야 합니다.
소스 코드에 대한 수정 사항은 실제로 관련성이 없었으며 어쨌든 로그를 증폭시켰을 것입니다.
openssh-7.4p1
수정한 내용을 정리했습니다
./configure --prefix=/opt --enable-pam --with-pam
make ; make install
그런 다음 다음을 만들었습니다 /lib/systemd/system/ssh-mod.service
.
[Unit]
Description=OpenBSD Secure Shell server modified to log
After=network.target auditd.service sshd.service
#ConditionPathExists=!/opt/etc/sshd-mod_not_to_be_run
ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
[Service]
EnvironmentFile=-/opt/etc/default/ssh
ExecStart=/opt/sbin/sshd -D -f /opt/etc/sshd_config $SSHD_OPTS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartPreventExitStatus=255
Type=notify
[Install]
WantedBy=multi-user.target
Alias=sshd-mod.service
/opt/etc/sshd_config
다음 줄을 포함하는 표준 SSH 구성 파일 입니다 .
Port 22
LogLevel INFO
ChallengeResponseAuthentication no
UsePAM yes
PrintMotd no
PidFile /var/run/sshd-mod.pid
이제 서비스를 시작합니다.
$ sudo systemctl start ssh-mod
명령이 무한 반복되므로 오류 메시지가 나타날 때까지 기다립니다.
Job for ssh-mod.service failed because a timeout was exceeded.
See "systemctl status ssh-mod.service" and "journalctl -xe" for details.
그런 다음 상태를 확인합니다.
$ sudo systemctl status ssh-mod
● ssh-mod.service - OpenBSD Secure Shell server modified to log
Loaded: loaded (/lib/systemd/system/ssh-mod.service; enabled; vendor preset: enabled)
Active: activating (start) since Mon 2017-09-04 10:19:50 UTC; 12s ago
Main PID: 15701 (sshd)
Tasks: 1 (limit: 4915)
CGroup: /system.slice/ssh-mod.service
└─15701 /opt/sbin/sshd -D -f /opt/etc/sshd_config
Sep 04 10:19:50 mymachine systemd[1]: ssh-mod.service: Service hold-off time over, scheduling restart
Sep 04 10:19:50 mymachine systemd[1]: Stopped OpenBSD Secure Shell server modified to log.
Sep 04 10:19:50 mymachine systemd[1]: Starting OpenBSD Secure Shell server modified to log...
Sep 04 10:19:50 mymachine sshd[15701]: Server listening on 0.0.0.0 port 22.
Sep 04 10:19:50 mymachine sshd[15701]: Server listening on :: port 22.
$ journalctl -xe
Sep 04 10:19:50 mymachine systemd[1]: ssh-mod.service: Start operation timed out. Terminating.
Sep 04 10:19:50 mymachine sshd[15549]: Received signal 15; terminating.
Sep 04 10:19:50 mymachine systemd[1]: Failed to start OpenBSD Secure Shell server modified to log.
-- Subject: Unit ssh-mod.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit ssh-mod.service has failed.
--
-- The result is failed.
Sep 04 10:19:50 mymachine systemd[1]: ssh-mod.service: Unit entered failed state.
Sep 04 10:19:50 mymachine systemd[1]: ssh-mod.service: Failed with result 'timeout'.
Sep 04 10:19:50 mymachine systemd[1]: ssh-mod.service: Service hold-off time over, scheduling restart
Sep 04 10:19:50 mymachine systemd[1]: Stopped OpenBSD Secure Shell server modified to log.
-- Subject: Unit ssh-mod.service has finished shutting down
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit ssh-mod.service has finished shutting down.
Sep 04 10:19:50 mymachine systemd[1]: Starting OpenBSD Secure Shell server modified to log...
-- Subject: Unit ssh-mod.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit ssh-mod.service has begun starting up.
Sep 04 10:19:50 mymachine sshd[15701]: Server listening on 0.0.0.0 port 22.
Sep 04 10:19:50 mymachine sshd[15701]: Server listening on :: port 22.
실제로 서비스 결과는 "활성화"로 표시되지만 포트 22에 로그인할 수 있으므로(다른 서버가 다른 포트에서 수신 대기 중임) 쉘이 작동하는 것 같습니다.
원인이 무엇인지 모르겠습니다. 로그가 명확하지 않습니다.
내가 무엇을 놓치고 있나요? 서비스가 왜 다운되나요?
더 많은 정보가 필요하면 알려주시기 바랍니다.
위의 단계를 따랐습니다.Red Hat 문서.
답변1
다른 systemd 시스템(Ubuntu 16.04.3 LTS, HPC 공급업체에서 가능한 수정 사항을 제공)에서도 동일한 동작을 확인했습니다.
내가 아는 한 문제는 Type=notify에 있으며 sshd는 sd_notify(3) 또는 systemd와 유사한 기능을 사용하여 알림 메시지를 보내지 않거나 보낼 수 없습니다. 따라서 systemd는 시작되었다는 메시지를 결코 받지 않습니다.
지금 내가 한 일은 /etc/systemd/system/ssh.service(/lib/systemd/system/ssh.service의 복사본)에 재정의를 만들고 유형을 알림에서 포크로 변경하는 것입니다. 그런 다음 ExecStart에서 -D를 제거하면 sshd가 해당 데몬을 포크합니다.
그런 다음 systemctl daemon-reload를 실행하고 SSH를 다시 시작하여 작동하는지 확인하세요.
올바른 해결책은 Type=notify를 사용하여 ssh 서비스가 다시 작동하도록 만드는 것이지만 오늘은 그렇게 할 시간이 없습니다. 이것이 누군가에게 도움이 되기를 바랍니다.