フリーキーズ | 独学プログラミング

VPSでUbuntu24.04をサーバにしようとしてPermission Deniedでハマった話

最終更新日
リンドくん

リンドくん

たなべ先生、VPSってよく聞くんですけど、Ubuntu 24でサーバを立てるのって難しいんですか?

たなべ

たなべ

いい質問だね!実は最近、Ubuntu 24でサーバを構築しようとしたときに思わぬ壁にぶつかったんだ。
でも心配しないで、今日はそのハマりポイントと解決策を詳しく解説するよ!

はじめに - サーバ構築の落とし穴

みなさん、こんにちは!IT講師のたなべです。
サーバ構築って、手順通りにやればうまくいくと思いきや、思わぬところでつまずくことありますよね。特にOSのバージョンが上がると、従来の方法が通用しないケースが出てきます。

今回は、自分がVPS(Virtual Private Server)でUbuntu 24.04を使ってサーバを構築した際に直面した問題と、その解決策をご紹介します。この記事がサーバ構築初心者の皆さんの役に立てば幸いです。

Ubuntu 24ではSSHポート変更方法が変わった

リンドくん

リンドくん

あれ?でもネット上の記事では、単純にsshd_configファイルを編集するだけって書いてありましたよね?

たなべ

たなべ

そこなんだよね!以前のUbuntuならそれで良かったんだけど、Ubuntu 24ではシステムの仕組みが変わっていて、従来の方法だけでは上手くいかないんだ。

systemdの仕様変更

Ubuntu 24では、SSHサービスの管理方法が変更されました。従来のUbuntuバージョンでは、SSH接続のポート設定を変更する場合、単に/etc/ssh/sshd_configファイル内のPort設定を変更するだけで済みました。しかし、Ubuntu 24.04ではsystemdの仕様変更により、もう一つ重要な設定ファイルを変更する必要があるのです。

具体的には、systemdがソケットベースの接続管理を行うようになり、SSHサービスの起動前にソケットの設定が読み込まれるようになりました。
そのため、従来の方法だけでは「Permission Denied」などのエラーが発生してしまうのです。

実際のエラー状況と解決手順

実際に自分がハマったケースをご紹介します。
VPSにUbuntu 24.04をインストールし、セキュリティ強化のためにSSHのデフォルトポート(22番)を変更しようとしました。

【従来の方法】

sudo vi /etc/ssh/sshd_config
# Port 22 を Port 51234 に変更
sudo systemctl restart ssh

これだけのはずでしたが、再起動後にSSH接続を試みると接続できず、ログを確認すると「Permission Denied」エラーが発生していました。

【Ubuntu 24での正しい方法】

sshd_configの編集(従来通り)

sudo vi /etc/ssh/sshd_config
# Port 22 を Port 51234 に変更

重要!ソケット設定ファイルの編集

sudo vi /lib/systemd/system/ssh.socket
# ListenStream=22 を ListenStream=51234 に変更

systemdの再読み込みとSSHサービスの再起動

sudo systemctl daemon-reload
sudo systemctl restart ssh

この3ステップをすべて行うことで、問題なくSSHポートの変更が反映されました!

2つのファイル編集が必須

Ubuntu 24でSSHポートを変更する際は、必ず2つのファイルを編集する必要があります。

  1. /etc/ssh/sshd_config(SSH設定ファイル)
  2. /lib/systemd/system/ssh.socket(systemdソケット設定)

この二つの設定を同期させないと、SSH接続ができなくなってしまうので注意が必要です。

サーバ構築における最新情報の重要性

OSの進化に伴う仕様変更

Linuxディストリビューションは常に進化しており、バージョンアップの度に内部の仕組みが変更されることがあります。
特にシステム管理に関わる部分は、セキュリティや効率性向上のために変更されることが多いのです。

今回のケースでは、systemdがソケット管理の方法を変更したことで従来の方法が通用しなくなりました。
こうした変更は公式ドキュメントに記載されていることもありますが、ときには見落としがちな小さな変更として扱われることもあります。

Ubuntuの最新情報を入手する方法

最新のサーバ構築情報を入手するためには、以下の方法が効果的です。

公式ドキュメントの確認

  • Ubuntu 24の公式リリースノート
  • systemdの公式ドキュメント

コミュニティフォーラムの活用

  • Ask Ubuntu
  • Server Fault
  • Reddit r/Ubuntu

定期的な実践

  • 実際に自分でテスト環境を構築
  • 新バージョンがリリースされたら早めに試す

実践が最大の学び

「定期的にサーバ構築を手動でやらないと仕様変更に気づけない」というのは本当です。
どれだけネットの情報を読んでも、実際に手を動かして構築してみることで初めて気づく問題点があります。特に本番環境に適用する前に、テスト環境で十分に検証することをおすすめします。

トラブルシューティングの基本テクニック

リンドくん

リンドくん

もし設定を変えたあとにSSHでつながらなくなったらどうするんですか?VPSだとディスプレイつながってないですよね?

たなべ

たなべ

鋭い質問だね!リモートサーバでSSH接続ができなくなると確かに大変。でも安心して、いくつか対策方法があるんだよ。

リモートサーバは直接操作できない

VPSなどのリモートサーバでSSH接続ができなくなると、深刻な問題となります。
ディスプレイやキーボードが直接接続されていないため、設定ミスで接続できなくなるとサーバへのアクセス手段を失ってしまうのです。

安全に設定変更するテクニック

リモートサーバでSSH設定を変更する際の安全な方法をご紹介します。

  1. バックアップの作成

    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    sudo cp /lib/systemd/system/ssh.socket /lib/systemd/system/ssh.socket.bak
  2. セッションを切らない

    • 設定変更中は既存のSSHセッションを切らず、新たなセッションで接続テスト
  3. 自動復旧スクリプトの活用

    #!/bin/bash
    # 5分後に元の設定に戻すスクリプト
    sleep 300
    sudo cp /etc/ssh/sshd_config.bak /etc/ssh/sshd_config
    sudo cp /lib/systemd/system/ssh.socket.bak /lib/systemd/system/ssh.socket
    sudo systemctl daemon-reload
    sudo systemctl restart ssh
  4. VPSプロバイダのコンソールアクセスの確認

    • 多くのVPSプロバイダはブラウザからのコンソールアクセスを提供

準備と検証がとても大事

サーバ設定変更で最も重要なのは、変更前の準備と変更後の慎重な検証です。
特に接続に関わる設定を変更する場合は、必ずバックアップを取り、復旧手段を確保しておきましょう。

まとめ - サーバ構築は常に学び続ける旅

リンドくん

リンドくん

なるほど!Ubuntu 24.04では設定方法が変わったんですね。これからサーバ構築するときは気をつけます!

たなべ

たなべ

そうだね!技術は常に進化しているから、定期的に手を動かして最新の変更点をキャッチすることが大切なんだ。これからも一緒に学んでいこう!

今回ご紹介したUbuntu 24でのSSHポート変更の新しい方法は、サーバ管理者にとって重要な知識です。従来の方法からの変更点を理解しておくことで、「Permission Denied」などのエラーに悩まされることなく、スムーズにサーバ構築を進めることができます。

サーバ構築においては、常に最新の情報をキャッチアップし、実践を通じて学ぶことが何よりも大切です。OSのバージョンアップごとに小さな変更が積み重なっていくため、定期的に手動でサーバ構築を行い、スキルを磨き続けることをおすすめします。

皆さんも、サーバ構築で困ったことがあれば、ぜひコミュニティに質問したり、実際に検証環境で試してみたりして、知識を深めていってください。サーバ構築は奥が深く、学びがいのある分野です。