updating openssh-server fails, because port 22 is in use by systemd

Bug #1957104 reported by Thomas Schweikle
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
openssh (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

openssh-server tries to restart itself, but openssh-server reports port 22 in use. This is true: systemd has taken port 22 to start sshd if one connects to port 22.

two solutions:
1. dont start sshd after installing.
   configure it without starting it afterwards.
2. stop systemd listening on port 22
   before starting sshd, then start sshd,
   terminate it after configuring, then
   start systemd listening on port 22 again.

Second problem:
starting ssh.service does not check if "/run/sshd" exists. This directory has to be created before sshd is started. Unclear if this is an error with sshd not creating this directory before dropping privileges or if this has to be done once while installing. IMHO the first is the case.

Workaround:
systemctl stop ssh.service
systemctl disable ssh.service
apt upgrade
systemctl enable ssh.service
killall sshd
mkdir /run/sshd
systemctl start ssh.service

ProblemType: Bug
DistroRelease: Ubuntu 21.10
Package: openssh-server 1:8.4p1-6ubuntu2.1
ProcVersionSignature: Ubuntu 5.13.0-23.23-generic 5.13.19
Uname: Linux 5.13.0-23-generic x86_64
NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
ApportVersion: 2.20.11-0ubuntu71
Architecture: amd64
CasperMD5CheckResult: pass
CurrentDesktop: XFCE
Date: Tue Jan 11 19:11:47 2022
InstallationDate: Installed on 2021-08-18 (146 days ago)
InstallationMedia: Xubuntu 21.04 "Hirsute Hippo" - Release amd64 (20210420)
SSHDConfig: Error: command ['pkexec', '/usr/sbin/sshd', '-T'] failed with exit code 255: Missing privilege separation directory: /run/sshd
SourcePackage: openssh
UpgradeStatus: No upgrade log present (probably fresh install)

Revision history for this message
Thomas Schweikle (tps) wrote :
Revision history for this message
Athos Ribeiro (athos-ribeiro) wrote :

Hi Thomas,

Thank you for taking the time to file a bug report.

The systemd service is indeed restarted throughout the package upgrade process. This means that sshd is supposed to halt (and cease listening on port 22) before the service is started again.

How are you starting the ssh server? Would you mind providing your configuration file as well (make sure there is no sensitive data being shared if you decide to do so). Providing logs will also help us identify the issue you have been experiencing.

As for the second issue reported, regarding creation of the /run/sshd directory when starting the service through systemd, this is actually performed through the RuntimeDirectory directive in the ssh unit files.

Finally, would you be able to provide a reproducer for the issue?

Since there is not enough information in your report to begin triage or to
differentiate between a local configuration problem and a bug in Ubuntu, I
am marking this bug as "Incomplete". We would be grateful if you would:
provide a more complete description of the problem, explain why you
believe this is a bug in Ubuntu rather than a problem specific to your
system, and then change the bug status back to "New".

For local configuration issues, you can find assistance here:
http://www.ubuntu.com/support/community

Changed in openssh (Ubuntu):
status: New → Incomplete
Revision history for this message
Thomas Schweikle (tps) wrote :

sshd is started by systemd. No special configurations besides defaults by Ubuntu/xUbuntu. Only change in /etc/ssh/sshd_config: "PermitRootLogin prohibit-password" -> "PermitRootLogin yes"

Revision history for this message
Lucas Kanashiro (lucaskanashiro) wrote :

I upgraded openssh-server in a Impish VM locally and I was not able to reproduce the issue you described. Are you able to provide some detailed steps on how to reproduce this bug? Could you check if you face the same issue with Jammy (22.04)?

Revision history for this message
Thomas Schweikle (tps) wrote :

Solved by a later version of systemd and sshd.
To have it work as intended sshd has to be compiled with different options set.

Revision history for this message
Paride Legovini (paride) wrote :

Hello Thomas. You filed this bug against:

  DistroRelease: Ubuntu 21.10
  Package: openssh-server 1:8.4p1-6ubuntu2.1

By "Solved by a later version of systemd and sshd". Do you mean that you found you can't reproduce the issue on Jammy (22.04 LTS)? Can you still reproruce the issue on Impish? Thank you.

Revision history for this message
Thomas Schweikle (tps) wrote : Re: [Bug 1957104] Re: updating openssh-server fails, because port 22 is in use by systemd

I can't reproduce this issue on impish or jammy. It was fixed by a
change in handling sockets in systemd.

On Mon, May 9, 2022 at 6:25 PM Paride Legovini
<email address hidden> wrote:
>
> Hello Thomas. You filed this bug against:
>
> DistroRelease: Ubuntu 21.10
> Package: openssh-server 1:8.4p1-6ubuntu2.1
>
> By "Solved by a later version of systemd and sshd". Do you mean that you
> found you can't reproduce the issue on Jammy (22.04 LTS)? Can you still
> reproruce the issue on Impish? Thank you.
>
> --
> You received this bug notification because you are subscribed to the bug
> report.
> https://bugs.launchpad.net/bugs/1957104
>
> Title:
> updating openssh-server fails, because port 22 is in use by systemd
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/1957104/+subscriptions
>

--
Thomas

Revision history for this message
Lena Voytek (lvoytek) wrote :

Hello Thomas,

Since the issue can't be reproduced in impish or jammy, is this an error you found in Focal, or has this been fixed for you? If it's an error in an earlier supported version then we can backport the fix to it.

Thanks!

Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for openssh (Ubuntu) because there has been no activity for 60 days.]

Changed in openssh (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.