[Bug 1991592] [NEW] openssh-server should ship a systemd generator to generate ssh socket port configuration from sshd_config

Launchpad Bug Tracker 1991592 at bugs.launchpad.net
Mon Oct 3 23:27:38 UTC 2022


You have been subscribed to a public bug by Steve Langasek (vorlon):

A criticism of the existing sshd socket activation implementation is
that Port/ListenAddress options are migrated on a one-time basis at
package upgrade time, and afterwards users get the surprising behavior
that Port/ListenAddress settings added to sshd_config are ignored.

A systemd generator could be used to change the ssh socket unit
configuration on boot, and on each change of /etc/ssh/sshd_config.
Sample implementation from Dimitri:

ssh.socket:
[Unit]
Wants=sshd-config.path

#
# Note the below defaults are cleared and overriden by
#    /lib/systemd/system-generators/sshd-generator
# based on the sshd config from the sshd -T output
#
ListenStream=[::]:22
ListenStream=0.0.0.0:22

diff --git a/systemd/sshd-config.path b/systemd/sshd-config.path
new file mode 100644
index 000000000..cfa9674a3
--- /dev/null
+++ b/systemd/sshd-config.path
@@ -0,0 +1,4 @@
+[Unit]
+ConditionPathExists=!/etc/ssh/sshd_not_to_be_run
+[Path]
+PathChanged=/etc/ssh/sshd_config
diff --git a/systemd/sshd-config.service b/systemd/sshd-config.service
new file mode 100644
index 000000000..b009ea52c
--- /dev/null
+++ b/systemd/sshd-config.service
@@ -0,0 +1,5 @@
+[Unit]
+Description=Regenerate ssh.socket.d/ssh-listen.conf drop-in
+
+[Service]
+ExecStart=/bin/systemctl daemon-reload
diff --git a/systemd/sshd-generator b/systemd/sshd-generator
new file mode 100755
index 000000000..72c6aac04
--- /dev/null
+++ b/systemd/sshd-generator
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -eu
+mkdir -p /run/sshd
+sshd -t
+mkdir -p $1/ssh.socket.d
+target="$1/ssh.socket.d/ssh-listen.conf"
+echo '[Socket]' > $target
+echo 'ListenStream=' >> $target
+sshd -T | sed -n 's/^listenaddress /ListenStream=/p' >> $target
+rmdir --ignore-fail-on-non-empty /run/sshd

** Affects: openssh (Ubuntu)
     Importance: High
         Status: Triaged

-- 
openssh-server should ship a systemd generator to generate ssh socket port configuration from sshd_config
https://bugs.launchpad.net/bugs/1991592
You received this bug notification because you are a member of Ubuntu Foundations Bugs, which is subscribed to the bug report.



More information about the foundations-bugs mailing list