起動直後は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_keys3. 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_IP4. ufw(OS側)
sudo ufw default deny incoming
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full' # Web公開時のみ
sudo ufw enable
sudo ufw status verbose5. Vultr Firewallとの併用
クラウド側とOS側の両方で許可が必要です。片方だけ開けても接続できません。切り分けはコンソール(NoVNC)から sudo ufw disable で一時的にOS側を外します。
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起動を参照。