ユーザ用ツール

サイト用ツール


ubuntu:noble

Ubuntu 24.04

sshのportを変更する

Ubuntu 24.04では/etc/ssh/sshd_configのPortを修正してsshを再起動しても反映されない。ssh.serviceではなくssh.socketを再起動する

sudo systemctl daemon-reload
sudo systemctl ssh.socket 

socket activation

Ubuntu 24.04はsocket activationという仕組みを採用しており、各サーバプロセスの代わりにsystemdがポートを開いて待ち受け、接続があれば各サービスに接続を引き継ぐという流れになっている。

この待ち受けと引き継ぎを管理しているのがsocketユニットで、sshならばssh.socketが管理している。

sshd_configを修正してssh.socketを再起動すると、/etc/systemd/generator/ssh.socket.d/addresses.confが自動的に作成される。このファイルにsystemdが待ち受けするポートが指定されている。

socket activationでは接続の引き渡し先サービスが停止していた場合、systemdは対象のサービスを立ち上げてから接続を引き渡す。このためサービスはOS起動時の自動起動をオンにする必要もない。

$ systemctl list-unit-files | grep ssh
ssh.service                                                                   disabled        enabled
ssh.socket                                                                    enabled         enabled

このようにssh.serviceのstateはdisabledにされている。代わりにssh.socketがenabledになっている。

ubuntu/noble.txt · 最終更新: 2024/08/25 13:20 by nullpon