在Ubuntu 20.04及以后的版本中,openssh服务器默认使用systemd的socket激活。在“/etc/ssh/sshd_config”也有说明:系统的ssh server由systemd监听22端口,有了新的连接时启动sshd服务。在这种情况下,即使在sshd_config中更改了端口号,也不会成功,因为实际监听的端口是由systemd管理。如系统正在使用socket,并希望修改ssh端口,则需修改systemd的配置。
sudo mkdir -p /etc/systemd/system/ssh.socket.d
sudo nano /etc/systemd/system/ssh.socket.d/port.conf
增加以下内容:
[Socket]
ListenStream=
ListenStream=8022
然后
sudo systemctl daemon-reload
sudo systemctl restart ssh