The automatic migration script from jammy to kinetic generates a invalid file for sshd that systemd refuses to read. Manual addition of two lines is required for a functional sshd with a custom port.
- Configure /etc/ssh/sshd_config to port 2222 in 22.04
- Upgrade to 22.10 with sudo do-release-upgrade -d
- Accept overwriting /etc/ssh/sshd_config with the new version
- Attempt to ssh into the machine
# Expected behavior
systemd should listen on port 2222 and start sshd.
The migration script must be missing the `[Socket]` line and the next one. sshd works after I added those two lines manually. Either the migration script never worked or systemd changed the syntax in the meantime.
The automatic migration script from jammy to kinetic generates a invalid file for sshd that systemd refuses to read. Manual addition of two lines is required for a functional sshd with a custom port.
$ lsb_release -rd
Description: Ubuntu Kinetic Kudu (development branch)
Release: 22.10
$ apt-cache policy openssh-server /gpl.savoirfair elinux. net/pub/ mirrors/ ubuntu kinetic/main amd64 Packages dpkg/status
openssh-server:
Installed: 1:9.0p1-1ubuntu6
Candidate: 1:9.0p1-1ubuntu6
Version table:
*** 1:9.0p1-1ubuntu6 500
500 https:/
100 /var/lib/
$ apt-cache policy systemd /gpl.savoirfair elinux. net/pub/ mirrors/ ubuntu kinetic/main amd64 Packages dpkg/status
systemd:
Installed: 251.4-1ubuntu6
Candidate: 251.4-1ubuntu6
Version table:
*** 251.4-1ubuntu6 500
500 https:/
100 /var/lib/
# Instructions
- Configure /etc/ssh/ sshd_config to port 2222 in 22.04 sshd_config with the new version
- Upgrade to 22.10 with sudo do-release-upgrade -d
- Accept overwriting /etc/ssh/
- Attempt to ssh into the machine
# Expected behavior
systemd should listen on port 2222 and start sshd.
$ cat /etc/systemd/ system/ ssh.socket. d/addresses. conf
[Socket]
ListenStream=
ListenStream=2222
$ systemctl status ssh.socket system/ ssh.socket; enabled; preset: enabled) system/ ssh.socket. d
└ ─addresses. conf slice/ssh. socket
● ssh.socket - OpenBSD Secure Shell server socket
Loaded: loaded (/lib/systemd/
Drop-In: /etc/systemd/
Active: active (running) since Thu 2022-09-29 02:08:56 EDT; 9min ago
Until: Thu 2022-09-29 02:08:56 EDT; 9min ago
Triggers: ● ssh.service
Listen: [::]:2222 (Stream)
Tasks: 0 (limit: 19047)
Memory: 8.0K
CPU: 923us
CGroup: /system.
Sep 29 02:08:56 daniel-desktop2 systemd[1]: Listening on OpenBSD Secure Shell server socket.
# Actual behavior
Port 2222 refuses any connection. Systemd fails to parse the automatically generated file:
$ systemctl status ssh.socket system/ ssh.socket; enabled; preset: enabled) system/ ssh.socket. d
└ ─addresses. conf slice/ssh. socket
● ssh.socket - OpenBSD Secure Shell server socket
Loaded: loaded (/lib/systemd/
Drop-In: /etc/systemd/
Active: active (listening) since Thu 2022-09-29 01:51:57 EDT; 16min ago
Until: Thu 2022-09-29 01:51:57 EDT; 16min ago
Triggers: ● ssh.service
Listen: [::]:22 (Stream)
Tasks: 0 (limit: 19047)
Memory: 8.0K
CPU: 982us
CGroup: /system.
Sep 29 01:51:57 daniel-desktop2 systemd[1]: Listening on OpenBSD Secure Shell server socket. system/ ssh.socket. d/addresses. conf:1: Assignment outside of section. Ignoring.
Sep 29 01:56:23 daniel-desktop2 systemd[1]: /etc/systemd/
$ cat /etc/systemd/ system/ ssh.socket. d/override. conf
ListenStream=2222
# Analysis
The migration script must be missing the `[Socket]` line and the next one. sshd works after I added those two lines manually. Either the migration script never worked or systemd changed the syntax in the meantime.