SSHのリッスンポートを変更できない

通常(というか初期設定では)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接続でエラーが出ることになりますね。困った。

原因を追及してみます。ソケットファイルの直接書き換え以外の方法を模索してみます。

投稿者プロフィール

kaizawa
kaizawaブロガー
新潟県在住。1964年生まれ、東京オリンピックの年ですね。
突然燃え上がったり、鎮火したり興味の波が激しいので注意が必要です。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA