Public bug reported: Symptom: ssh.service is not running and not accepting new SSH connections and returns socket closed error upon attempted connection. ssh.service shows a failed with error message "Missing privilege separation directory: /run/sshd".
The following line is needed in the SystemD Unit configuration of the ssh.service file for the openssh-server package to fix what appears to be a race condition when ssh.service is sometimes started before systemd-tmpfiles-setup.service is finished processing the file in /usr/lib/tmpfiles.d/openssh.server.conf that is required to create the /run/sshd directory that is required by ssh.service to start property. There might be more depth or an alternative reason to why /run/sshd/ still didn't exist after using ```systemctl reset-failed ssh.service```. So more investigation is needed by someone with more background in systemd-tmpfiles-setup.service and openssh-server package after it when to socket activation. = Error Messages = ``` $journalctl -u ssh.service -b-1 Mar 02 21:30:56 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 21:30:56 server sshd[1271]: Missing privilege separation directory: /run/sshd Mar 02 21:30:56 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 21:30:56 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 21:30:56 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:56 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 1. Mar 02 21:30:56 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:56 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 21:30:56 server sshd[1369]: Missing privilege separation directory: /run/sshd Mar 02 21:30:56 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 21:30:56 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 21:30:56 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:56 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 2. Mar 02 21:30:56 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:56 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 21:30:56 server sshd[1454]: Missing privilege separation directory: /run/sshd Mar 02 21:30:56 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 21:30:56 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 21:30:56 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:57 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 3. Mar 02 21:30:57 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:57 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 21:30:57 server sshd[1465]: Missing privilege separation directory: /run/sshd Mar 02 21:30:57 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 21:30:57 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 21:30:57 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:57 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 4. Mar 02 21:30:57 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:57 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 21:30:57 server sshd[1475]: Missing privilege separation directory: /run/sshd Mar 02 21:30:57 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 21:30:57 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 21:30:57 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:57 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 5. Mar 02 21:30:57 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 21:30:57 server systemd[1]: ssh.service: Start request repeated too quickly. Mar 02 21:30:57 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 21:30:57 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:25 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:25 server sshd[47238]: Missing privilege separation directory: /run/sshd Mar 02 22:19:25 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:25 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:25 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:25 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 1. Mar 02 22:19:25 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:25 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:25 server sshd[47240]: Missing privilege separation directory: /run/sshd Mar 02 22:19:25 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:25 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:25 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:26 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 2. Mar 02 22:19:26 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:26 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:26 server sshd[47241]: Missing privilege separation directory: /run/sshd Mar 02 22:19:26 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:26 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:26 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:26 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 3. Mar 02 22:19:26 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:26 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:26 server sshd[47242]: Missing privilege separation directory: /run/sshd Mar 02 22:19:26 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:26 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:26 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:26 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 4. Mar 02 22:19:26 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:26 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:26 server sshd[47243]: Missing privilege separation directory: /run/sshd Mar 02 22:19:26 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:26 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:26 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:26 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 5. Mar 02 22:19:26 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:26 server systemd[1]: ssh.service: Start request repeated too quickly. Mar 02 22:19:26 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:26 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:37 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:37 server sshd[47253]: Missing privilege separation directory: /run/sshd Mar 02 22:19:37 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:37 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:37 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:37 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 1. Mar 02 22:19:37 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:37 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:37 server sshd[47254]: Missing privilege separation directory: /run/sshd Mar 02 22:19:37 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:37 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:37 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:37 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 2. Mar 02 22:19:37 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:37 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:37 server sshd[47255]: Missing privilege separation directory: /run/sshd Mar 02 22:19:37 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:37 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:37 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:38 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 3. Mar 02 22:19:38 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:38 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:38 server sshd[47256]: Missing privilege separation directory: /run/sshd Mar 02 22:19:38 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:38 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:38 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:38 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 4. Mar 02 22:19:38 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:38 server systemd[1]: Starting ssh.service - OpenBSD Secure Shell server... Mar 02 22:19:38 server sshd[47257]: Missing privilege separation directory: /run/sshd Mar 02 22:19:38 server systemd[1]: ssh.service: Control process exited, code=exited, status=255/EXCEPTION Mar 02 22:19:38 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:38 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:38 server systemd[1]: ssh.service: Scheduled restart job, restart counter is at 5. Mar 02 22:19:38 server systemd[1]: Stopped ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:38 server systemd[1]: ssh.service: Start request repeated too quickly. Mar 02 22:19:38 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:38 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. Mar 02 22:19:45 server systemd[1]: ssh.service: Start request repeated too quickly. Mar 02 22:19:45 server systemd[1]: ssh.service: Failed with result 'exit-code'. Mar 02 22:19:45 server systemd[1]: Failed to start ssh.service - OpenBSD Secure Shell server. ``` Note: Errors showed up a total of 3x5 times because the ```systemctl reset-failed ssh.service``` command was used and it still showed up. = Add to Package SystemD Unit File = ``` ''/lib/systemd/system/ssh.service'' [Unit] After=systemd-tmpfiles-setup.service ``` = System Configuration = ``` ''lsb_release -rd'' No LSB modules are available. Description: Ubuntu 23.10 Release: 23.10 ``` ``` ''cat /etc/lsb-release'' DISTRIB_ID=Ubuntu DISTRIB_RELEASE=23.10 DISTRIB_CODENAME=mantic DISTRIB_DESCRIPTION="Ubuntu 23.10" ``` ``` ''apt-cache policy openssh-server'' openssh-server: Installed: 1:9.3p1-1ubuntu3.2 Candidate: 1:9.3p1-1ubuntu3.2 Version table: *** 1:9.3p1-1ubuntu3.2 500 500 http://us.archive.ubuntu.com/ubuntu mantic-updates/main amd64 Packages 500 http://security.ubuntu.com/ubuntu mantic-security/main amd64 Packages 100 /var/lib/dpkg/status 1:9.3p1-1ubuntu3 500 500 http://us.archive.ubuntu.com/ubuntu mantic/main amd64 Packages ``` = Package Configuration Problems = ``` ''systemctl --property=After show ssh.service'' After=network.target sysinit.target basic.target auditd.service system.slice ssh.socket pollinate.service systemd-journald.socket ``` ``` ''systemctl --no-pager --property=Before show systemd-tmpfiles-setup.service'' Before=ssh.service man-db.service logrotate.service systemd-timesyncd.service vgauth.service ModemManager.service fwupd.service e2scrub_reap.service initrd-switch-root.target systemd-update-utmp.service bluetooth.service open-vm-tools.service systemd-resolved.service polkit.service systemd-logind.service cockpit.service sysinit.target upower.service shutdown.target ``` **Note: ssh.service needs to be in the Before= clause above to fix the race condition of the ssh.service starting before the /usr/lib/tmpfiles.d/openssh-server.conf is processed by systemd- tmpfiles-setup.service during start-up sequence otherwise /run/sshd directory won't exist.** ``` ''cat /usr/lib/tmpfiles.d/openssh-server.conf'' #Type Path Mode UID GID Age Arguments D /run/sshd 0755 root root - - ``` = Temporary Solution = Create the directory and the Unit file with the After= clause to populate the Before= clause for systemd-tmpfiles-setup.service ``` ''mkdir -p /etc/systemd/system/ssh.service.d'' cat >/etc/systemd/system/ssh.service.d/after.conf <<EOF [Unit] After=systemd-tmpfiles-setup.service EOF ``` Verify the file. ``` ''cat /etc/systemd/system/ssh.service.d/after.conf'' [Unit] After=systemd-tmpfiles-setup.service ``` ``` Reload SystemD config ``` systemctl daemon-reload ``` Verify new active config. ``` ''systemctl --no-pager --property=Before show systemd-tmpfiles-setup.service'' Before=... ssh.service ... ``` ``` ''systemctl --property=After show ssh.service'' After=... systemd-tmpfiles-setup.service ...``` === End of Bug Report === ProblemType: Bug DistroRelease: Ubuntu 23.10 Package: openssh-server 1:9.3p1-1ubuntu3.2 ProcVersionSignature: Ubuntu 6.5.0-21.21-generic 6.5.8 Uname: Linux 6.5.0-21-generic x86_64 NonfreeKernelModules: zfs ApportVersion: 2.27.0-0ubuntu5 Architecture: amd64 CasperMD5CheckResult: unknown Date: Sun Mar 3 02:22:39 2024 InstallationDate: Installed on 2020-12-14 (1174 days ago) InstallationMedia: Ubuntu 20.04.1 LTS "Focal Fossa" - Release amd64 (20200731) ProcEnviron: LANG=en_US.UTF-8 PATH=(custom, no user) SHELL=/bin/bash TERM=putty SourcePackage: openssh UpgradeStatus: Upgraded to mantic on 2024-02-26 (6 days ago) ** Affects: openssh (Ubuntu) Importance: Undecided Status: New ** Tags: amd64 apport-bug mantic -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/2055806 Title: sshd.service ssh.socket systemd-tmpfiles-setup:Before= - Missing privilege separation directory: /run/sshd To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/2055806/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs