起動直後はSSH鍵ログインとファイアウォールを先に済ませます。以下はUbuntu 24.04 LTS想定。鍵パスはサイト全体で ~/.ssh/id_ed25519_vultr に統一しています。

1. ローカルで鍵を作る

ssh-keygen -t ed25519 -C "vultr" -f ~/.ssh/id_ed25519_vultr
chmod 600 ~/.ssh/id_ed25519_vultr
chmod 644 ~/.ssh/id_ed25519_vultr.pub

公開鍵を Vultr → Account(アカウント)→ SSH Keys(SSH鍵) に登録します。

2. 初回ログイン後に一般ユーザーを作る

初回はパネル表示のユーザー(root / linuxuser 等)で入り、その後 deploy を作ります。

adduser deploy
usermod -aG sudo deploy
rsync --archive --chown=deploy:deploy ~/.ssh /home/deploy/
chmod 700 /home/deploy/.ssh
chmod 600 /home/deploy/.ssh/authorized_keys

3. root・パスワードSSHを無効化

sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl reload sshd

以降の接続:

ssh -i ~/.ssh/id_ed25519_vultr deploy@YOUR_SERVER_IP

4. ufw(OS側)

sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'   # Web公開時のみ
sudo ufw enable
sudo ufw status verbose

5. Vultr Firewallとの併用

クラウド側とOS側の両方で許可が必要です。片方だけ開けても接続できません。切り分けはコンソール(NoVNC)から sudo ufw disable で一時的にOS側を外します。

公式Firewallドキュメント ↗

6. fail2ban(SSHブルートフォース対策)

sudo apt install -y fail2ban
sudo tee /etc/fail2ban/jail.d/sshd.local <<'EOF'
[sshd]
enabled = true
EOF
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

スナップショット

保存GB課金(目安 $0.05/GB/月)。不要なスナップショットは削除してください。自動化はVPS起動を参照。

公式スナップショット料金 ↗