sshd init fail when ListenAddress directive set to specific interface IP
Description:
When I set in sshd_config the ListenAddress to the actual interface IP, then the sshd init will fail because it will start and fail before the specified IP is available.
Additional info:
- package version(s): openssh 9.7p1-1
- log files:
# journalctl -b | grep -E '[^a-z](lo|eth0|sshd)[^a-z]'
abr 15 10:21:16 pc1 kernel: e1000e 0000:10:00.0 eth0: (PCI Express:2.5GT/s:Width x4)
abr 15 10:21:16 pc1 kernel: e1000e 0000:10:00.0 eth0: Intel(R) PRO/1000 Network Connection
abr 15 10:21:16 pc1 kernel: e1000e 0000:10:00.0 eth0: MAC: 0, PHY: 4, PBA No:
abr 15 10:21:16 pc1 NetworkManager[555]: <info> [1713171616.9309] manager: (lo): new Loopback device (/org/freedesktop/NetworkManager/Devices/1)
abr 15 10:21:16 pc1 NetworkManager[555]: <info> [1713171616.9318] device (lo): state change: unmanaged -> unavailable (reason 'connection-assumed', sys-iface-state: 'external')
abr 15 10:21:16 pc1 NetworkManager[555]: <info> [1713171616.9328] device (lo): state change: unavailable -> disconnected (reason 'connection-assumed', sys-iface-state: 'external')
abr 15 10:21:16 pc1 NetworkManager[555]: <info> [1713171616.9333] device (lo): Activation: starting connection 'lo'
abr 15 10:21:16 pc1 NetworkManager[555]: <info> [1713171616.9340] manager: (eth0): new Ethernet device (/org/freedesktop/NetworkManager/Devices/2)
abr 15 10:21:16 pc1 NetworkManager[555]: <info> [1713171616.9343] device (eth0): state change: unmanaged -> unavailable (reason 'managed', sys-iface-state: 'external')
abr 15 10:21:17 pc1 NetworkManager[555]: <info> [1713171617.4471] device (lo): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'external')
abr 15 10:21:17 pc1 NetworkManager[555]: <info> [1713171617.4475] device (lo): state change: prepare -> config (reason 'none', sys-iface-state: 'external')
abr 15 10:21:17 pc1 NetworkManager[555]: <info> [1713171617.4480] device (lo): state change: config -> ip-config (reason 'none', sys-iface-state: 'external')
abr 15 10:21:17 pc1 NetworkManager[555]: <info> [1713171617.4489] device (lo): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'external')
abr 15 10:21:17 pc1 NetworkManager[555]: <info> [1713171617.4516] device (lo): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'external')
abr 15 10:21:17 pc1 NetworkManager[555]: <info> [1713171617.4519] device (lo): state change: secondaries -> activated (reason 'none', sys-iface-state: 'external')
abr 15 10:21:17 pc1 NetworkManager[555]: <info> [1713171617.4527] device (lo): Activation: successful, device activated.
abr 15 10:21:17 pc1 sshd[592]: error: Bind to port 22 on 192.168.1.2 failed: Cannot assign requested address.
abr 15 10:21:17 pc1 sshd[592]: fatal: Cannot bind any address.
abr 15 10:21:17 pc1 systemd[1]: sshd.service: Main process exited, code=exited, status=255/EXCEPTION
abr 15 10:21:17 pc1 systemd[1]: sshd.service: Failed with result 'exit-code'.
abr 15 10:21:17 pc1 systemd[1]: sshd.service: Scheduled restart job, restart counter is at 1.
abr 15 10:21:17 pc1 sshd[606]: error: Bind to port 22 on 192.168.1.2 failed: Cannot assign requested address.
abr 15 10:21:17 pc1 sshd[606]: fatal: Cannot bind any address.
abr 15 10:21:17 pc1 systemd[1]: sshd.service: Main process exited, code=exited, status=255/EXCEPTION
abr 15 10:21:17 pc1 systemd[1]: sshd.service: Failed with result 'exit-code'.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Scheduled restart job, restart counter is at 2.
abr 15 10:21:18 pc1 sshd[608]: error: Bind to port 22 on 192.168.1.2 failed: Cannot assign requested address.
abr 15 10:21:18 pc1 sshd[608]: fatal: Cannot bind any address.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Main process exited, code=exited, status=255/EXCEPTION
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Failed with result 'exit-code'.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Scheduled restart job, restart counter is at 3.
abr 15 10:21:18 pc1 sshd[611]: error: Bind to port 22 on 192.168.1.2 failed: Cannot assign requested address.
abr 15 10:21:18 pc1 sshd[611]: fatal: Cannot bind any address.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Main process exited, code=exited, status=255/EXCEPTION
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Failed with result 'exit-code'.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Scheduled restart job, restart counter is at 4.
abr 15 10:21:18 pc1 sshd[621]: error: Bind to port 22 on 192.168.1.2 failed: Cannot assign requested address.
abr 15 10:21:18 pc1 sshd[621]: fatal: Cannot bind any address.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Main process exited, code=exited, status=255/EXCEPTION
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Failed with result 'exit-code'.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Scheduled restart job, restart counter is at 5.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Start request repeated too quickly.
abr 15 10:21:18 pc1 systemd[1]: sshd.service: Failed with result 'exit-code'.
abr 15 10:21:19 pc1 kernel: e1000e 0000:10:00.0 eth0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
abr 15 10:21:19 pc1 NetworkManager[555]: <info> [1713171619.0737] device (eth0): carrier: link connected
abr 15 10:21:19 pc1 NetworkManager[555]: <info> [1713171619.0742] device (eth0): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
abr 15 10:21:19 pc1 NetworkManager[555]: <info> [1713171619.0758] device (eth0): Activation: starting connection 'ETH0'
abr 15 10:21:19 pc1 NetworkManager[555]: <info> [1713171619.0760] device (eth0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
abr 15 10:21:19 pc1 NetworkManager[555]: <info> [1713171619.2431] device (eth0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
abr 15 10:21:19 pc1 NetworkManager[555]: <info> [1713171619.2451] device (eth0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
abr 15 10:21:19 pc1 NetworkManager[555]: <info> [1713171619.2460] policy: set 'ETH0' (eth0) as default for IPv4 routing and DNS
abr 15 10:21:19 pc1 systemd-resolved[543]: eth0: Bus client set default route setting: yes
abr 15 10:21:19 pc1 systemd-resolved[543]: eth0: Bus client set DNS server list to: 192.168.1.1
abr 15 10:21:21 pc1 NetworkManager[555]: <info> [1713171621.2690] device (eth0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')
abr 15 10:21:21 pc1 NetworkManager[555]: <info> [1713171621.2707] device (eth0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
abr 15 10:21:21 pc1 NetworkManager[555]: <info> [1713171621.2708] device (eth0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
abr 15 10:21:21 pc1 NetworkManager[555]: <info> [1713171621.2712] device (eth0): Activation: successful, device activated.
abr 15 10:21:21 pc1 NetworkManager[555]: <info> [1713171621.9973] device (eth0): carrier: link connected
abr 15 10:21:21 pc1 kernel: e1000e 0000:10:00.0 eth0: NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx
I solve this replacing in sshd.service After=network.target
by After=network-online.target
The Restart=always
will not help because it will try for 2 seconds restart 5 consecutive times and then give up.