[Bug 1834128] Re: Multiple sshd services cannot be executed

Luke A. Perkins public at epicdgs.us
Wed Jul 3 14:13:50 UTC 2019


The way I created this was to implement 2 sshd services called wan_sshd
and lan_sshd. I used the existing sshd.service files as templates. See
attached files. This solution reliably works using Ubuntu 18.04.2 LTS
with OpenSSH 7.6p1.

Addition things I had to do:

1) Delete the sshd.service, sshd.socket, and sshd at .service in the /lib/systemd/system directory.
2) Perform a "sudo systemctl disable ssh". All this does is delete the links to the files in step #1.
3) Delete the /etc/rc*.d/S01ssh files.
4) Delete the /etc/init.d/ssh
5) Replace the /etc/default/ssh with the ssh.default in the ZIP file.
6) Delete the /etc/ssh/sshd_config. Add the sshd_*_config files from the ZIP file.
7) Add the wan_sshd* and lan_sshd* files to the /lib/systemd/system directory from the ZIP file. NOTE: Files called _at.service should be renamed to @.service. 
8) Generate your own key files and make appropriate changes to the sshd_*_config files.
9) Add the usr_lib_tmpfiles_d.conf from the ZIP file as /usr/lib/tmpfiles.d/sshd.conf
10) Reboot the machine and make sure /run/sshd exists BEFORE enabling the 2 services.

I make the assumption that the reader has the skill set to use systemctl
to get the services started. I also assume the reader has the skill set
to edit a shsd_*_config file.

** Attachment added: "Files from my server that work."
   https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1834128/+attachment/5274899/+files/SampleDualServer.zip

** Changed in: openssh (Ubuntu)
       Status: Incomplete => New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to openssh in Ubuntu.
https://bugs.launchpad.net/bugs/1834128

Title:
  Multiple sshd services cannot be executed

Status in openssh package in Ubuntu:
  New

Bug description:
  OpenSSH 7.6p1
  Ubuntu 18.04.2 (LTS) (Bionic)

  See also Ticket #1831765, #1690485, and #1832110 regarding the path of
  the privilege separation directory (aka: /run/sshd).

  The current Debian installer sets the RuntimeDirectory=sshd (i.e.
  /run/sshd) in sshd.service (i.e. /lib/systemd/system/sshd.service) and
  sshd at .service (i.e. /lib/systemd/system/sshd at .service). This is not
  the best means of implementing this service. The problem is that the
  systemd deletes the RuntimeDirectory resource as soon as the service
  is stopped. When this happens, other sshd services will fault since
  the privileged separation directory is no longer there. We need to
  modify the configuration as follows:

  1) Create /usr/lib/tmpfiles.d/sshd.conf that defines the /run/sshd directory with root:root as the owner and the protection of 0755.
  2) Change the assignment of the RuntimeDirectory in sshd.service to something other than sshd (i.e. /run/sshd).
  3) Change the assignment of the RuntimeDirectory in sshd at .service to something other than sshd (i.e. /run/sshd).

  Both OpenSSH and Ubuntu have declined to provision a means of
  adjusting the Privilege Separation directory. Since both teams do not
  want to address this, we need to have a means of implementing multiple
  instance sshd invocation using  systemd and avoiding using the
  RuntimeDirectory assignment of /run/sshd.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1834128/+subscriptions



More information about the foundations-bugs mailing list