今どきのSSHはデーモンじゃなくてソケットで待ち受けてるよ

nogajun
nogajun

タイトルそのまま。 ポート番号を変更しても変わらないなーと思って悩んでいたので書いておきます。

SSHのポートを変更する場合、/etc/ssh/sshd_config.d/以下に設定ファイルを置いて設定していましたが、今どきのSSHでは、ここにポートの設定を書いても反映されません。

それもそのはず。今どきのSSHは、デーモンとして起動しっぱなしじゃなくてsystemdがソケットの待ち受けていてアクセスがあったときに起動しています。

ということでポート変更の設定をする場合は、ssh.socketの設定を上書きするoverride.confを作ってあげましょう。 次のコマンドを実行します。

sudo systemctl edit ssh.socket

するとテキストエディタの編集画面になるので以下のように設定を書きます。

[Socket]
ListenStream=2222

ポート番号は適当なので自分が使う番号にしてください。その他の設定もエディタに表示されているのでわかると思います。

設定を追加して保存すれば、/etc/systemd/system/ssh.socket.d/override.confが作成されるので、あとは指定したポート番号でアクセスすればOK。