さくらのVPSを新規で契約すると、コントロールパネルからOSをインストールした直後は本当に「まっさら」な状態で渡される。rootで直接運用を続けるのはセキュリティ的に論外だし、SSHのデフォルト設定のままだと総当たり攻撃の的になる。この記事では、Debian 12/13でさくらのVPSを借りた直後にやっておくべき初期セットアップを、コマンド付きで最初から最後まで順番にまとめる。作業時間の目安は30分程度。
コントロールパネルからOSインストール
さくらのVPSはコントロールパネルの「OSインストール」からDebianを選んでインストールする。標準構成でDebian 12(bookworm)か13(trixie)が選択できるので、迷ったら安定版の12を選んでおけば無難。インストール完了後、コンソール(VNC経由)からrootパスワードでログインできる状態になる。IPアドレスとrootパスワードはパネルの画面に表示されるので控えておく。以降の作業はSSHクライアント(TeraTermやWindows Terminalのssh、Git Bash等)から行う。
rootで初回ログイン、パッケージ更新
まずrootでSSHログインし、パッケージを最新化する。
ssh root@[あなたのVPSのIPアドレス]
apt update && apt upgrade -y
ここで数十個のパッケージが更新されることが多い。カーネル更新が入った場合は最後に reboot しておくと安心。
作業用の一般ユーザーを作る
rootで日常作業をするのはリスクが高いので、まず一般ユーザーを作ってsudo権限を与える。
adduser deploy
usermod -aG sudo deploy
adduser はパスワード設定と対話式のプロンプトが出る。ユーザー名は好みで良いが、以降このガイドでは deploy として進める。
SSH鍵認証の設定
パスワード認証を切る前に、鍵認証でログインできる状態を作っておく。まずローカルPC側で鍵ペアを作成する。
# ローカル(手元のPC)で実行
ssh-keygen -t ed25519 -C "deploy@sakura-vps"
作成した公開鍵(~/.ssh/id_ed25519.pub)の中身を、VPS側の deploy ユーザーの authorized_keys に追記する。VPS側でdeployユーザーとしてログインし直すか、rootのまま作業しても良い。
# VPS側で(deployユーザーとして、またはsuでdeployに切り替えて)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA...ここに公開鍵の中身... deploy@sakura-vps" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
ここでいったん別のターミナルを新規に開いて、鍵認証でログインできることを確認する。
# ローカルの別ターミナルで
ssh -i ~/.ssh/id_ed25519 deploy@[VPSのIPアドレス]
これが今回一番大事なポイントで、鍵ログインの確認を怠ってパスワード認証を無効化すると、鍵が使えなかった場合に文字通りロックアウトされる。既存セッションを閉じずに新規セッションで確認するのが鉄則。
sshd_configの強化
鍵ログインが確認できたら、/etc/ssh/sshd_config を編集する。
sudo vi /etc/ssh/sshd_config
変更するのは主に以下の3点。
Port 10022
PermitRootLogin no
PasswordAuthentication no
ポート変更はポートスキャンによる自動攻撃をある程度減らせる(セキュリティの本質的な対策ではないが、ログのノイズは確実に減る)。編集後、設定を反映する。
sudo systemctl restart ssh
ここでも同じ注意が要る。既存のSSHセッションを切らずに、新しいターミナルから新ポートで鍵ログインできることを確認するまで作業を終えない。
ssh -i ~/.ssh/id_ed25519 -p 10022 deploy@[VPSのIPアドレス]
UFWでファイアウォールを最低限設定
SSHポートを変更したら、ファイアウォールでもそのポートを開けておく必要がある。詳細は別記事に譲るが、最低限のコマンドはこちら。
sudo apt install ufw -y
sudo ufw allow 10022/tcp
sudo ufw allow 80,443/tcp
sudo ufw enable
ここで一番怖いのが、SSHポートの許可を入れる前に ufw enable してしまい、SSH接続そのものが遮断される事故。必ず allow を先に実行してから enable する順番を守る。もしロックアウトしてしまった場合は、さくらのコントロールパネルのコンソール(VNC)からログインしてルールを直すしかない。
タイムゾーンをAsia/Tokyoに
デフォルトはUTCになっていることが多いので、日本国内向けサーバーなら変更しておく。
sudo timedatectl set-timezone Asia/Tokyo
timedatectl
ログのタイムスタンプが日本時間になるだけでも、障害調査のときの体感がだいぶ違う。
自動セキュリティ更新の導入
毎回手動で apt upgrade するのを忘れがちなので、セキュリティパッチだけは自動で当たるようにしておく。
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure -plow unattended-upgrades
dpkg-reconfigure の対話プロンプトで「Yes」を選ぶと、/etc/apt/apt.conf.d/20auto-upgrades が生成されて自動更新が有効になる。設定内容を確認したい場合は下記を見ておくと良い。
cat /etc/apt/apt.conf.d/50unattended-upgrades
デフォルトではセキュリティリポジトリからの更新のみが対象になっていることが多い。全パッケージの自動更新は意図しない破壊的変更のリスクもあるので、まずはセキュリティ更新だけに絞るのが無難だと思う。
まとめ
さくらのVPSの初期セットアップは、パッケージ更新 → 一般ユーザー作成 → SSH鍵認証 → sshd_config強化 → UFW → タイムゾーン → 自動更新、という流れで一通り完了する。ポイントは「鍵ログイン確認」と「SSHポート許可」を、パスワード認証無効化やUFW有効化より必ず先に済ませること。ここさえ守れば、ロックアウトの事故はほぼ防げる。次はUFWのルールをもう少し細かく詰めていく。
