[Bug 1991592] Re: openssh-server should ship a systemd generator to generate ssh socket port configuration from sshd_config
Corey Reichle
1991592 at bugs.launchpad.net
Thu Oct 6 20:37:23 UTC 2022
> False. It is documented in the manpage,
I looked in the manpage for my install, and no mention of socket
activation.
I looked in the README.Debian, and it indicated you can switch to socket
activation, over standard daemonization, if you choose, by masking sshd,
and enabling sshd.socket, and starting sshd.socket instead.
Maybe it's in the new release. I am basing my info on where I
encountered this issue.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to the bug report.
https://bugs.launchpad.net/bugs/1991592
Title:
openssh-server should ship a systemd generator to generate ssh socket
port configuration from sshd_config
Status in openssh package in Ubuntu:
Triaged
Bug description:
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
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1991592/+subscriptions
More information about the foundations-bugs
mailing list