Ok. The solution to this problem was to restart not ssh.service but ssh.socket. 
Thus:
sudo systemctl daemon-reload
sudo systemctl restart ssh.socket

I think the documentation, such as it is, should make this clear.
Googling around gets you several hits that say you should sudo systemctl
restart ssh (which is ssh.service) which is incorrect.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to openssh in Ubuntu.
https://bugs.launchpad.net/bugs/2020560

Title:
  ssh.service and ssh.socket both running.

Status in openssh package in Ubuntu:
  Incomplete

Bug description:
  I am running Ubuntu 23.04. The out-of-the-box configuration allows SSH
  access on port 22. I wish to have ssh listen on both ports 22 and
  7022. The ssh_config file contains a comment that Ubuntu now uses
  socket activated connections and thus ignores the Port and
  ListenAddress entries. I looked up the ssh socket activation and found
  that I needed a /etc/systemd/system/ssh.socket.d directory that
  contains a listen.conf file. I created the directory and the
  listen.conf file that contains this.

  [Socket]
  # Uncomment the following line to turn of listening on port 22.
  #ListenStream=
  ListenStream=7022

  I then ran these two commands:
  sudo systemctl daemon-reload
  sudo systemctl restart ssh

  I then checked for port listeners:
  root# lsof -i -P -n | grep LISTEN
  systemd         1            root  454u  IPv6    25979      0t0  TCP *:22 
(LISTEN)
  systemd-r     638 systemd-resolve   14u  IPv4    35332      0t0  TCP 
127.0.0.53:53 (LISTEN)
  systemd-r     638 systemd-resolve   16u  IPv4    35334      0t0  TCP 
127.0.0.54:53 (LISTEN)
  Xtigervnc     941           moose    9u  IPv4    22485      0t0  TCP 
127.0.0.1:5902 (LISTEN)
  Xtigervnc     941           moose   10u  IPv6    22486      0t0  TCP 
[::1]:5902 (LISTEN)
  cupsd     2258639            root    6u  IPv6 33526334      0t0  TCP 
[::1]:631 (LISTEN)
  cupsd     2258639            root    7u  IPv4 33526335      0t0  TCP 
127.0.0.1:631 (LISTEN)
  sshd      3698765            root    3u  IPv6    25979      0t0  TCP *:22 
(LISTEN)

  I then discovered that both ssh.service and ssh.socket are running:
  root@/etc/netplan# systemctl status ssh.service
  ? ssh.service - OpenBSD Secure Shell server
       Loaded: loaded (/lib/systemd/system/ssh.service; disabled; preset: 
enabled)
      Drop-In: /etc/systemd/system/ssh.service.d
               ??00-socket.conf
       Active: active (running) since Tue 2023-05-23 11:17:29 EDT; 36min ago
  TriggeredBy: ? ssh.socket
         Docs: man:sshd(8)
               man:sshd_config(5)
      Process: 3698763 ExecStartPre=/usr/sbin/sshd -t (code=exited, 
status=0/SUCCESS)
     Main PID: 3698765 (sshd)
        Tasks: 3 (limit: 38046)
       Memory: 3.6M
          CPU: 206ms
       CGroup: /system.slice/ssh.service
               ??3698765 "sshd: /usr/sbin/sshd -D [listener] 1 of 10-100 
startups"
               ??3777496 "sshd: root [priv]"
               ??3777497 "sshd: root [net]"

  May 23 11:51:44 alces sshd[3771657]: ...
  Hint: Some lines were ellipsized, use -l to show in full.
  root@/etc/netplan# systemctl status ssh.socket
  ? ssh.socket - OpenBSD Secure Shell server socket
       Loaded: loaded (/lib/systemd/system/ssh.socket; enabled; preset: enabled)
      Drop-In: /etc/systemd/system/ssh.socket.d
               ??listen.conf
       Active: active (running) since Mon 2023-05-15 09:23:44 EDT; 1 week 1 day 
ago
        Until: Mon 2023-05-15 09:23:44 EDT; 1 week 1 day ago
     Triggers: ? ssh.service
       Listen: [::]:22 (Stream)
               [::]:7022 (Stream)
        Tasks: 0 (limit: 38046)
       Memory: 8.0K
          CPU: 569us
       CGroup: /system.slice/ssh.socket

  May 15 09:23:44 alces systemd[1]: ...
  Hint: Some lines were ellipsized, use -l to show in full.

  
  Finally, I found that /lib/systemd/system contains both ssh.service and 
ssh.socket configurations.
  ssh.service:
  [Unit]
  Description=OpenBSD Secure Shell server
  Documentation=man:sshd(8) man:sshd_config(5)
  After=network.target auditd.service
  ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

  [Service]
  EnvironmentFile=-/etc/default/ssh
  ExecStartPre=/usr/sbin/sshd -t
  ExecStart=/usr/sbin/sshd -D $SSHD_OPTS
  ExecReload=/usr/sbin/sshd -t
  ExecReload=/bin/kill -HUP $MAINPID
  KillMode=process
  Restart=on-failure
  RestartPreventExitStatus=255
  Type=notify

  [Install]
  WantedBy=multi-user.target
  Alias=sshd.service

  ssh.socket:
  [Unit]
  Description=OpenBSD Secure Shell server socket
  Before=sockets.target
  ConditionPathExists=!/etc/ssh/sshd_not_to_be_run

  [Socket]
  ListenStream=22
  Accept=no

  [Install]
  WantedBy=sockets.target

  Finally, in /etc/systemd/system there is an ssh.service.d directory
  that contains the 00-socket.conf file that contains:

  [Unit]
  After=ssh.socket
  Requires=ssh.socket

  
  This is very confusing. I could disable ssh.service, but I am concerned that 
if I do this I will lose ssh connectivity to my headless server. What is the 
way out of this morass? It would be VERY helpful if there was a comprehensive 
guide to the current ssh configuration that explains what services to run, how 
to configure those services, and where the configuration files should reside.

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


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to