通常(というか初期設定では) SSH のリッスンポートは「 22 」番が使われている。あまりにもこれは有名な話なので、変更しましょうというのがあちこちで見受けられる。私もやってみた。
最初にやったのは
まず最初は /etc/ssh/ssh_config の編集。これは一般的にも広まっている方法だと思う。適当なエディタで同ファイルを編集して、コメントアウトされている #Port 22 を探して、変更。その後サービスをリスタートさせるというもの。この方法は以前から使われていた方法ですね。
ところが、 Ubuntu22.04.3 LTS で行ってもリッスンポートが変更できない。番号を指定してやっても、 22 番を使い続けてしまう。何故でしょう?
検索して見つけたこと
この変更は、 SSH サーバーの待ち受けポートを変更したい場合に影響があります。従来であれば /etc/ssh/sshd_config を直接書き換えていましたが、 Ubuntu 22.10 では systemd.socket の Unit ファイルを変更する必要があります。
Ubuntu 22.10 で SSH サーバーの待ち受けポートを変更するには - 仮想化通信
私の Ubuntu は、 22.04.3 です。引用したのは、 22.10 について何ですが、どうも同じようです。 socket の Unit ファイルを書き換えます。といっても、何のことやらさっぱりです。上記引用にやり方が書いてあるので、その通りに実行してみます。曰く、
- /lib/systemd/system/ssh.socket を書き換える必要がある
- しかしながら、上記ファイルは openssh-server パッケージが提供しているファイルのため、直接書き換えるのはよろしくない。パッケージがアップデートされたら、上記ファイルは書き換えられてしまうことが考えられる
- systemctl edit を使って Overwrite ファイルを作る。
systemctl edit (今回初めて使った)コマンドを実行しても、「変更点が無いので、変更されません」とかいうメッセージが出てオーバーライドファイルが作成されない。困った。
更に検索してみたら
### Editing /etc/systemd/system/firewalld.service.d/override.conf
### Anything between here and the comment below will become the new contents of the file
<— ここに設定を記述する —>
### Lines below this comment will be discarded
systemctl edit で書き込めない #Linux – Qiita
あっ、コメント読んでなかった。引用の3行目に変更点を記述しなければならないんですね。これでうまくいく!と思ったのですが、ダメです。うまくいきません。
仕方が無いので
/lib/systemd/system/ssh.socket を直接書き換えてみました。そうするとうまくいくんですね。
openssh-server パッケージがアップデートされたら、変更される可能性大です。そうすると、 SSH 接続でエラーが出ることになりますね。困った。
原因を追及してみます。ソケットファイルの直接書き換え以外の方法を模索してみます。
投稿者プロフィール
最新の投稿
- Tech2024年11月28日ChromeOS flex を古いノートにインストール
- Linux2024年11月16日Ubuntu で外付け SSD の容量が違って見える
- Linux2024年11月13日Windows インストールできず。 Ubuntu に変更
- Windows2024年11月8日Windows11 起動せず