「root権限のまま使い続けて良いのか不安」
VPSを借りた直後というのは、Linuxの学習意欲が高まっている反面、何から手をつければ良いかわからず立ち往生しやすい場面でもあります。特に初めてサーバーを持つ人にとって、「動いているけど本当に大丈夫か?」という不安はよく聞きます。
この記事では、ConoHa VPSやさくらのVPSを借りた後に行う初期セットアップ手順を、Ubuntu 24.04 LTS と Rocky Linux 9 の両方に対応した形で解説します。root設定・一般ユーザー作成・SSHの設定変更・ファイアウォール設定まで、順番に実行すれば安全に使い始められる状態になります。
この記事のポイント
・VPS契約直後はrootパスワード変更とOSアップデートを最初に行う
・一般ユーザー作成とsudo設定でrootの直接ログインを禁止することが重要
・SSHのポート番号変更とfirewall設定で不正アクセスリスクを大幅に減らせる
・Ubuntu(apt)とRocky Linux(dnf)でコマンドが異なるため確認が必要
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
VPSとは?レンタルサーバーやクラウドとの違い
VPS(Virtual Private Server)は、物理的なサーバーを仮想的に分割して提供するサービスです。レンタルサーバーとクラウドの中間に位置し、初心者がLinuxサーバーを学ぶ環境として最も適しています。| 種類 | 特徴 | 管理の自由度 | 月額目安 |
|---|---|---|---|
| 共有レンタルサーバー | 設定済みですぐ使える。OSの操作は不可 | 低い | 数百円~ |
| VPS | 仮想サーバーを専有。OSレベルから設定できる | 高い | 500円~2,000円程度 |
| クラウド(AWS/GCP) | 柔軟なスペール変更。従量課金が多い | 非常に高い | 使用量による |
この記事では ConoHa VPS(月額660円~)と さくらのVPS(月額660円~)を例にします。契約後にOSとしてUbuntu 24.04 LTSまたはRocky Linux 9を選んでいる前提で進めます。
セットアップ前の確認:コントロールパネルからコンソールにアクセスする
VPSを契約すると、Webブラウザ上でコントロールパネルにログインできます。そこから「コンソール」または「VNCコンソール」と呼ばれる機能を使うと、サーバーの画面に直接アクセスできます。・ConoHa:コントロールパネル > サーバー > コンソールアイコン
・さくらのVPS:コントロールパネル > VPSコンソール
コンソール画面でrootユーザーとしてログインするとコマンドが打てる状態になります。初回はOSインストール時に設定したrootパスワードを使います。
また、自分のPC上でSSHクライアントを使う方法もあります。WindowsであればPowerShellかターミナルアプリ、Macであればターミナル、WSL2を使っている人はそのターミナルから接続できます。
# 自分のPCのターミナルからVPSへSSH接続する(初期) ssh root@[VPSのIPアドレス] # 接続すると以下のようなプロンプトが表示される root@vps-xxxxx:~#
ステップ1:rootパスワードを変更する
1. rootでログインしてすぐパスワードを変更する
コンソールまたはSSHでrootとしてログインしたら、最初にすべきことはrootパスワードの変更です。初期状態のパスワードは安全でない場合があります。# rootパスワードを変更する passwd # 実行すると新しいパスワードを2回入力するよう求められる New password: Retype new password: passwd: password updated successfully
2. OSを最新状態にアップデートする
次に、OSのパッケージを最新の状態に更新します。セキュリティパッチが当たっていない状態で公開されているサーバーは、脆弱性を突かれるリスクがあります。Ubuntu 24.04 LTSの場合:
# パッケージリストを更新してからアップグレード apt update && apt upgrade -y # 実行結果(一部) Hit:1 http://jp.archive.ubuntu.com/ubuntu noble InRelease Reading package lists... Done Building dependency tree... Done Calculating upgrade... Done The following packages will be upgraded: ...
# パッケージを最新にアップデート dnf update -y # 実行結果(一部) Rocky Linux 9 - BaseOS 4.0 MB/s | 2.3 MB 00:00 Dependencies resolved. ... Complete!
reboot
ステップ2:一般ユーザーを作成してsudo権限を付与する
1. 新しいユーザーを作成する
Linuxでは、日常的な作業をrootで行うことは推奨されていません。rootは全権限を持つため、誤ったコマンドがシステム全体に影響します。一般ユーザーを作成し、必要な時だけsudoで管理者権限を使う運用が安全です。# ユーザー名「tanaka」で新しいユーザーを作成する adduser tanaka # Ubuntuでは対話式で名前やパスワードを設定する Adding user `tanaka' ... New password: Retype new password: passwd: password updated successfully Is the information correct? [Y/n] Y # Rocky Linux 9では別のコマンドを使う useradd tanaka passwd tanaka
2. 作成したユーザーにsudo権限を付与する
作成したユーザーがsudoコマンドを使えるようにします。Ubuntuの場合:sudoグループに追加する。
# tanaka を sudo グループに追加する usermod -aG sudo tanaka # グループ所属を確認する id tanaka uid=1000(tanaka) gid=1000(tanaka) groups=1000(tanaka),27(sudo)
# tanaka を wheel グループに追加する usermod -aG wheel tanaka # グループ所属を確認する id tanaka uid=1000(tanaka) gid=1000(tanaka) groups=1000(tanaka),10(wheel)
3. 新しいユーザーでログインしてsudoが使えるか確認する
別のターミナルを開いて、新しく作ったユーザーでSSH接続してみます。# 自分のPCから新しいユーザーでSSH接続する ssh tanaka@[VPSのIPアドレス] # ログイン後、sudo で管理者コマンドを実行できるか確認する sudo whoami # 正常であれば "root" と表示される [sudo] password for tanaka: root
ステップ3:SSHの設定を強化してセキュリティを高める
1. SSHの設定ファイルを開く
SSH(Secure Shell)はリモートサーバーに接続するためのプロトコルです。デフォルトのポート番号22番は攻撃者に狙われやすいため、ポート番号を変更することが効果的です。SSHの設定ファイルは `/etc/ssh/sshd_config` です。
# SSHの設定ファイルをnanoで編集する(rootまたはsudo実行) sudo nano /etc/ssh/sshd_config
2. ポート番号を変更する
設定ファイルの中から `#Port 22` という行を探します。先頭の `#`(コメント)を外し、好きなポート番号に変更します。# 変更前(コメントアウト状態でポート22番がデフォルト) #Port 22 # 変更後(例:49022番に変更する) Port 49022
3. rootの直接ログインを禁止する
同じ設定ファイルの中で `PermitRootLogin` という行を探し、rootでの直接ログインを禁止します。# 変更前 #PermitRootLogin prohibit-password # 変更後(noにするとrootでのSSHログイン全拒否) PermitRootLogin no
4. パスワード認証の設定を確認する
パスワード認証よりもSSH鍵認証の方が安全です。鍵認証を設定した後はパスワード認証を無効にできます。鍵認証の設定方法については、当サイトの「LinuxのSSH鍵認証入門」を参照してください。まず現時点では以下の状態になっていることを確認します。
# パスワード認証が有効になっていること(鍵認証設定前は有効にしておく) PasswordAuthentication yes
5. SSHサービスを再起動して設定を反映する
設定を保存したらSSHサービスを再起動します。# Ubuntu の場合 sudo systemctl restart ssh # Rocky Linux 9の場合 sudo systemctl restart sshd # サービスの状態を確認する sudo systemctl status ssh * ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled) Active: active (running) since ...
# 新しいポート番号(例:49022)でSSH接続テスト ssh -p 49022 tanaka@[VPSのIPアドレス]
ステップ4:ファイアウォールを設定して不要なポートを閉じる
1. Ubuntuの場合:UFWを設定する
Ubuntuには UFW(Uncomplicated Firewall)というファイアウォール管理ツールが標準で入っています。# SSHポート(変更後のポート番号)を許可する sudo ufw allow 49022/tcp # Webサーバーを公開する場合はHTTP/HTTPSも許可する sudo ufw allow 80/tcp sudo ufw allow 443/tcp # UFWを有効化する sudo ufw enable # ルールを確認する sudo ufw status verbose Status: active To Action From -- ------ ---- 49022/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 443/tcp ALLOW IN Anywhere
2. Rocky Linux 9の場合:firewalldを設定する
Rocky Linux 9では `firewalld` が標準のファイアウォールです。# firewalldの状態を確認する sudo systemctl status firewalld # 変更後のSSHポートを許可する sudo firewall-cmd --permanent --add-port=49022/tcp # Webサーバーを公開する場合 sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https # デフォルトの22番ポートを削除する sudo firewall-cmd --permanent --remove-service=ssh # 設定を反映する sudo firewall-cmd --reload # 設定を確認する sudo firewall-cmd --list-all public (active) target: default ... ports: 49022/tcp services: cockpit dhcpv6-client http https
3. VPSコントロールパネルのファイアウォールも確認する
ConoHaやさくらのVPSにはOS外部のネットワークレベルのファイアウォール設定があります。SSHのポートを変更した場合は、コントロールパネル側でもそのポートを許可しておく必要があります。・ConoHa:コントロールパネル > セキュリティグループ > ルール設定
・さくらのVPS:パケットフィルターは初期設定でOFF(OSのfirewallのみで管理する)
ステップ5:システムのタイムゾーンを設定する
VPSはデータセンターの地域に合わせてタイムゾーンが設定されている場合があります。日本で使うサーバーならJST(Asia/Tokyo)に設定しておくと、ログの時刻が読みやすくなります。# 現在のタイムゾーンを確認する timedatectl Local time: Sat 2026-06-07 02:15:34 UTC Universal time: Sat 2026-06-07 02:15:34 UTC RTC time: Sat 2026-06-07 02:15:34 Time zone: UTC (UTC, +0000) System clock synchronized: yes # タイムゾーンを日本時間(Asia/Tokyo)に変更する sudo timedatectl set-timezone Asia/Tokyo # 変更後の確認 timedatectl Local time: Sat 2026-06-07 11:15:34 JST Universal time: Sat 2026-06-07 02:15:34 UTC Time zone: Asia/Tokyo (JST, +0900)
ステップ6:自動セキュリティアップデートを設定する(Ubuntu向け)
セキュリティパッチを手動で定期的に適用するのは忘れがちです。Ubuntuには重要なセキュリティアップデートを自動適用する仕組みがあります。# unattended-upgradesパッケージをインストールする(初期から入っていることが多い) sudo apt install -y unattended-upgrades # 自動アップデートを有効化する sudo dpkg-reconfigure --priority=low unattended-upgrades # 設定を確認する sudo cat /etc/apt/apt.conf.d/20auto-upgrades APT::Periodic::Update-Package-Lists "1"; APT::Periodic::Unattended-Upgrade "1";
# dnf-automaticをインストールする sudo dnf install -y dnf-automatic # セキュリティアップデートのみ自動適用する設定ファイルを確認する sudo cat /etc/dnf/automatic.conf | grep upgrade_type upgrade_type = security # 自動アップデートタイマーを有効化する sudo systemctl enable --now dnf-automatic.timer
ステップ7:ホスト名を変更する(任意)
VPSのデフォルトのホスト名は意味のない文字列になっていることが多いです。わかりやすい名前に変更しておくと、複数サーバーを管理する際に便利です。# 現在のホスト名を確認する hostname vps12345.vs.sakura.ne.jp # ホスト名を変更する(例:web01に変更する) sudo hostnamectl set-hostname web01 # 変更を確認する hostname web01 # ログアウトして再ログインするとプロンプトに反映される tanaka@web01:~$
トラブルシュート:よくあるエラーと対処法
「Connection refused」で接続できない
SSHのポート番号を変更した後に接続できなくなった場合、以下を確認します。・変更したポート番号でSSH接続しているか(`-p ポート番号` を指定しているか)
・ファイアウォールで新しいポートを許可しているか
・VPSコントロールパネルのセキュリティグループで許可しているか
VPSコントロールパネルのコンソール機能からサーバーに接続し、設定を見直してください。
「sudo: command not found」が表示される
Rocky Linux 9の最小インストールでsudoが入っていない場合があります。# rootで実行してsudoをインストールする dnf install -y sudo
「Permission denied, please try again.」でSSHログインできない
パスワードが間違っているか、PermitRootLoginをnoにした後にrootでログインしようとしている可能性があります。一般ユーザーで接続し直してください。「ufw: command not found」でUFWが使えない
Rocky Linux 9ではUFWではなくfirewalldを使います。UbuntuでもUFWが入っていない場合は `apt install ufw` でインストールできます。VPS初期セットアップのまとめ
| やること | コマンド(Ubuntu) | コマンド(Rocky Linux 9) |
|---|---|---|
| OSアップデート | apt update && apt upgrade -y |
dnf update -y |
| ユーザー作成 | adduser ユーザー名 |
useradd ユーザー名 && passwd ユーザー名 |
| sudo権限付与 | usermod -aG sudo ユーザー名 |
usermod -aG wheel ユーザー名 |
| SSHポート変更 | nano /etc/ssh/sshd_config |
nano /etc/ssh/sshd_config |
| SSHサービス再起動 | systemctl restart ssh |
systemctl restart sshd |
| ファイアウォール設定 | ufw allow ポート/tcp && ufw enable |
firewall-cmd --permanent --add-port=ポート/tcp && firewall-cmd --reload |
| タイムゾーン変更 | timedatectl set-timezone Asia/Tokyo |
timedatectl set-timezone Asia/Tokyo |
次のステップとして、SSH鍵認証の設定(パスワード認証を廃止)、Webサーバー(Apache/Nginx)の構築、定期バックアップの設定などに進んでいきます。
Linux学習をさらに深めるための関連記事
VPSで自分のサーバーを持てたら、次はLinuxのコマンドやサーバー設定の実践的な知識を深めましょう。以下の記事で基本からしっかり固めることができます。・grepコマンドで文字列を検索する方法|複数ファイルやディレクトリ除外も
・chmodコマンドで権限を変更する方法|755と644の違いや一括変更も
・chownコマンドで所有者・グループを変更する方法|-Rの一括変更も
・psコマンドでプロセスを確認する方法|auxと-efの違いやgrep検索も
・crontabコマンドの設定と書き方|動かない時のログ確認まで
・Linuxのディレクトリ構造(階層)一覧まとめ|各役割を分かりやすく解説
・LinuxのDNS設定方法|resolv.confが元に戻る原因とnmcliの手順
無料の「Linuxサーバー構築入門マニュアル(図解60ページ)」をプレゼントしています。
コマンドを「なんとなく打つ」段階から卒業したい方は、ぜひ受け取ってみてください。
無料マニュアルを受け取る >>
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 前のページへ:LinuxにNode.jsをインストールして使う入門|nvmでWSL2やVPSにJavaScript実行環境を構築する方法
- この記事の属するカテゴリ:【Linux入門】初心者のための基礎知識・講座へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます