WEB工房しずおかのロゴ

WEB工房しずおか

ConoHa VPS×Ubuntu 24.04で挑むWEBサーバー構築記【SSH接続・ポート変更・Ubuntu24特有落とし穴の回避策】

WEB
Koshio

ConoHa VPS Ubuntu 24.04 SSH構築

みなさん、こんにちは!WEB工房しずおかの開発チームです。

弊社では、受託開発における提案力の強化や最新技術の検証を目的として、定期的かつ積極的にオリジナルプロダクトや自社WEBシステムのインフラ構築を行っています。

今回新しく挑戦するのは、バックエンド(Laravel + React + LexicalのオリジナルCMS)フロントエンド(Next.js 5サイトのモノレポ構成) を1台のVPS上で動作させるパワフルなWEBサーバーの構築です!

本記事ではその第一歩として、OSに Ubuntu 24.04 LTS を選択したConoHa VPS環境において、ローカルPC(Windows)から安全かつスムーズにSSH接続を確立するまでの手順を余すことなく解説します。

最新のUbuntu 24.04ならではの仕様変更(sshd.socket)によるトラブルと解決策も詳しく紹介しますので、同じ環境でセットアップを進めている方はぜひ参考にしてみてください!


1. 構築するシステム構成と前提条件

今回のサーバー構築における全体像と初期要件は以下の通りです。

構成要件

  • インフラ: ConoHa VPS(OS: Ubuntu 24.04 LTS)※ IPアドレスは「111.xxx.123.123」とします。
  • バックエンド: Laravel + React + Lexical(オリジナルCMS)
  • フロントエンド: Next.js × 5サイト(モノレポ管理)

SSH初期設定の要件

  1. rootアカウントでの直接ログイン禁止(セキュリティ基本対策)
  2. 作業用一般ユーザー(deployer)の作成とsudo権限付与
  3. ポート(22番)から独自ポート(1234番)への変更(ポート番号はご自身で適宜変更してください)
  4. 複数デバイスからのアクセスを考慮したパスワード認証の許可

2. 作業手順:ユーザー作成からSSH設定まで

それでは、ConoHa管理画面のブラウザコンソール(rootアカウント)から作業を進めていきます。

STEP 1:作業用ユーザー「deployer」の作成と権限付与

root直接ログインを禁止するため、管理者権限(sudo)を持つ一般ユーザーを作成します。

# 作業用ユーザーの作成
$ adduser deployer

# sudoグループに追加して管理者権限を付与
$ usermod -aG sudo deployer

STEP 2:ConoHaコントロールパネル(ネットワーク側)のポート開放

ConoHa VPSでは、OS内部のファイアウォールとは別に**インフラ側の「セキュリティグループ」**で通信が制限されています。

  1. ConoHaコントロールパネルにログイン
  2. 「セキュリティグループ」 から新規ルール作成(名前に 1234 などと設定)
  3. 以下のインバウンドルールを追加して保存
    • 通信方向: In / イーサタイプ: IPv4 / プロトコル: TCP / ポート範囲: 1234 / IP/CIDR: 0.0.0.0/0
  4. 対象のVPSの 「ネットワーク情報」 から、作成したセキュリティグループ 1234 を割り当てる

💡 ポイント
セキュリティグループのルールを作成しただけでは通信は届きません。必ずVPS本体のネットワーク設定に割り当てを行う必要があります。

STEP 3:Ubuntu 24.04 の SSH カスタム設定

Ubuntu 24.04 では、設定の保守性を高めるため /etc/ssh/sshd_config.d/ ディレクトリ配下に個別の設定ファイルを配置することが推奨されています。

$ sudo nano /etc/ssh/sshd_config.d/99-custom.conf

ファイル内に以下の内容を記述して保存します。

Port 1234
PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes

STEP 4:OS内部ファイアウォール(ufw)の許可

OS側のファイアウォールでも1234番ポートの通信を許可します。

# 1234番ポート(TCP)の開放
$ sudo ufw allow 1234/tcp

# ファイアウォール有効化と再読み込み
$ sudo ufw enable
$ sudo ufw reload

3. 【ハマりポイント】Ubuntu 24.04でポート変更が反映されない?

ここまでの設定を終え、いざローカルPC(Windows)のコマンドプロンプトから接続を試みたところ、トラブルが発生しました。

> ssh -p 1234 deployer@111.xxx.123.123
ssh: connect to host 111.xxx.123.123 port 1234: Connection refused

接続拒否(Connection refused)が返ってきます。
ConoHaコンソール側でポートの開放状態を確認してみます。

$ ss -tlpn | grep ssh
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=xxx,fd=x))

設定ファイルで Port 1234 を指定し、systemctl restart ssh を実行したにもかかわらず、依然として22番ポートで待ち受けが行われている状態でした。

原因:systemd socket activation(ssh.socket)の導入

調べてみると、Ubuntu 24.04 LTS から SSH の起動管理機構が変更され、デフォルトで ssh.socket(socket activation)が有効化されていることが分かりました。

これにより、従来の ssh.service ではなく ssh.socket がシステム起動時に22番ポートを常時バインドしてしまい、/etc/ssh/sshd_config.d/ に記述したカスタムポート設定が無視されるという現象が発生します。

解決策:ソケット管理を停止し、従来型サービスに切り替える

この問題を回避するため、ssh.socket を無効化し、設定ファイル通りに動作する従来型の ssh.service による管理へ切り替えます。

# 1. 22番ポートを掴んでいる socket 管理を停止・無効化
$ sudo systemctl stop ssh.socket
$ sudo systemctl disable ssh.socket

# 2. 従来型の ssh.service を有効化して再起動
$ sudo systemctl enable ssh.service
$ sudo systemctl restart ssh.service

再度、ポートの待ち受け状態を確認します。

$ ss -tlpn | grep ssh
LISTEN 0 128 0.0.0.0:1234 0.0.0.0:* users:(("sshd",pid=xxx,fd=x))

無事に 1234 番ポートで SSH サービスが待機(LISTEN)状態になりました!


4. ローカルPC(Windows)からの接続確認

改めてWindowsのコマンドプロンプトからSSH接続をテストします。

D:\dev> ssh -p 1234 deployer@111.xxx.123.123
The authenticity of host '[111.xxx.123.123]:1234' can't be established.
ED25519 key fingerprint is SHA256:bEBH4D7v1LNQjLRV6ieMtGv/hPwwJOtbppKmVGydjvQ.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes

deployer@111.xxx.123.123's password:
Welcome to Ubuntu 24.04.3 LTS (GNU/Linux 6.8.0-90-generic x86_64)

 *** System restart required ***

無事にパスワード入力が求められ、deployer ユーザーでログインすることができました!

画面上に「*** System restart required ***(再起動が必要です)」とシステム更新の適用が促されているため、指示通り再起動を実行しておきます。

$ sudo systemctl reboot

サーバーの再起動後、再度同じコマンドで問題なくSSH接続できることを確認し、初期SSHセットアップは無事完了となりました。


まとめ:正しくインフラを理解して安全なサーバー構築を

今回は、ConoHa VPS(Ubuntu 24.04 LTS)において、独自ポート(1234)を使った安全なSSH接続環境を構築する手順を紹介しました。

Ubuntu 24.04 では ssh.socket の導入など、従来のバージョン(Ubuntu 22.04等)とは一部挙動が異なる部分があるため、ハマりやすいポイントとなっています。

今回構築した堅牢なSSH基盤をベースに、次回はいよいよ Laravel / React / Lexical のバックエンド環境、および Next.js 5サイト(モノレポ)を支える Nginx, Node.js, pnpm, PHP などのWebサーバー環境構築を進めていきます!

WEB工房しずおかでは、モダンなフロントエンド開発だけでなく、VPSやクラウド環境におけるインフラ構築・パフォーマンス最適化・自動化(CI/CD)まで一貫してサポートしております。Webシステムのインフラ構築や移行でお困りの際は、ぜひお気軽にご相談ください!