Qman's Diary

多趣味人間の備忘録

2025-05-25

【備忘録】今(22.10以降)のUbuntuはsshd_configを変更するだけではSSHポートを変更できない

タグ
技術

久々にOracle Cloudで無料枠のUbuntuサーバーを作り直していたらドハマリしたので、備忘録を残す。

問題の概要

環境

Ubuntu 22.10以降(投稿時点で言うと22.10、23.04、23.10、24.04、24.10、25.04が該当すると思われる。Ubuntuのバージョンで検索する人が引っかかってほしいので列挙しておいた)

起きていること

従来、SSHポートをデフォルトの22番から変更する際は、/etc/ssh/sshd_configPortを編集していたと思う。しかし、これを変更してsshサービスを再起動(sudo systemctl restart ssh)してみても、どうも22番ポートで待ち受けてしまう。

解決策

/etc/ssh/sshd_configだけでなく、/usr/lib/systemd/system/ssh.socketも編集する必要がある。

手順

sshd_configの編集

従来通り、/etc/ssh/sshd_configPortを編集する。

/systemd/system/ssh.socketの編集

次に、/usr/lib/systemd/system/ssh.socketの以下の部分を編集する。

[Socket]
ListenStream=22

この”22”をお好みのポート番号に変更する(もちろん、/etc/ssh/sshd_configで設定したものと同じ番号を使う必要がある)。

daemon_reloadとsshサービスの再起動

systemdのファイルに手を加えたので、daemon-reloadからやる必要がある。

sudo systemctl daemon-reload
sudo systemctl restart ssh

これで、sshが設定したポートで待ち受けてくれるようになる。

systemctl status sshで確認してみるとよい。

参考資料

【2024年12月版】Ubuntu24.04 で sshdの待ち受けポートの変更【ssh, sshd】 #SSH - Qiita 参考にしてうまく行った記事。書いてある手順はほとんどここのコピペに等しい。

Cannot use a custom SSH port in Ubuntu 22.10 or above? Here's a fix - DEV Community 微妙に違う手順が記載されているので、うまくいなかったらこっちも参照してみてほしい。

(おまけ)もしかして: iptables

Oracle Cloudのインスタンス上でこれをやってポートが開いてるはずなのに接続できないという人は、まずOracle Cloud側のサブネットでポートが開いているかを確認する。それでも詰まっている人は「oracle cloud iptables」とかで検索すると幸せになれるかもしれない。

Recent Articles
>> キューマンのコンテンツ置き場

Profile

オタクコンテンツで命を繋いでいる人間

Accounts

Category