VPSのセキュリティ設定中に詰まったら、このページを見れば解決できます。
別記事「VPS初期設定のセキュリティ対策17選【コマンド完全版】」の手順を進める中で、エラーが出て止まってしまうことがあります。この記事は、よくあるエラーの原因・対処コマンドを7カテゴリに分類してまとめたトラブルシューティング集です。
- SSH接続・鍵認証のエラー原因と対処コマンド
- ファイアウォール設定ミスで自分が締め出されたときの復旧手順
- fail2banで自分のIPがブロックされたときの解除方法
- 最悪ケース(SSH完全ログイン不能)からの復旧手順
対象OSはUbuntu・Debian・CentOS系(Rocky Linux / AlmaLinux含む)の3系統です。
【最重要】まず確認すること
エラーが発生したとき、原因のほとんどは以下のどれかです。コマンドを調べる前に、まずこの3点を確認してください。
| よくある原因 | 確認方法 |
|---|---|
| 設定の順番ミス (ファイアウォール→SSH変更の順が逆など) | 設定手順を最初から見直す |
| OS違いによるコマンドミス (Ubuntu用をCentOSで使うなど) | 自分のOSを cat /etc/os-release で確認 |
| タイポ・スペルミス (sshd_configの記述ミスなど) | 設定ファイルを再度開いて確認 |
目次|エラーカテゴリ一覧
- 1. SSH接続系のエラー(Permission denied / Connection refused / timed out)
- 2. 権限・ユーザー系のエラー(sudo / usermod / command not found)
- 3. ファイアウォール系のエラー(ufw / firewalld / 自分が締め出された)
- 4. パッケージ管理エラー(apt / dnf / lock)
- 5. fail2ban関連エラー(起動失敗 / 自分がブロックされた)
- 6. SSL / certbotエラー(command not found / 認証失敗 / nginx)
- 7. 最悪ケース:SSHログイン完全不能(コンソール復旧手順)
1. SSH接続系のエラー
SSHに関するエラーは最も頻度が高く、対処を誤るとログイン不能につながります。落ち着いて原因を切り分けてください。
❌ Permission denied (publickey)
- 主な原因
-
- 公開鍵がサーバーの
authorized_keysに正しく登録されていない ~/.sshディレクトリまたはauthorized_keysのパーミッションが間違っている- 接続時に間違った秘密鍵ファイルを指定している
- 公開鍵がサーバーの
対処1:パーミッションを修正する(Ubuntu / Debian / CentOS共通)
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
対処2:公開鍵が正しく登録されているか確認する(Ubuntu / Debian / CentOS共通)
cat ~/.ssh/authorized_keys
ローカルで生成した公開鍵の内容(id_ed25519.pub の中身)と、サーバー側の authorized_keys に登録されている内容が一致していれば正常です。
対処3:接続時に鍵ファイルを明示的に指定する(Ubuntu / Debian / CentOS共通)
ssh -i ~/.ssh/id_ed25519 -p 2222 username@サーバーのIPアドレス
❌ Connection refused
- 主な原因
-
- SSHポートを変更したのに、接続時に古いポート番号を使っている
- sshdサービスが停止・クラッシュしている
対処1:SSHサービスの状態を確認する
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo systemctl status ssh |
| CentOS系 | sudo systemctl status sshd |
サービスが停止していた場合は以下で起動します。
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo systemctl start ssh |
| CentOS系 | sudo systemctl start sshd |
❌ Connection timed out
- 主な原因
-
- ファイアウォールでSSHポートがブロックされている
- SSHポートを変更後、ファイアウォールで新しいポートを開放していない
対処:SSHポートをファイアウォールで開放する
Ubuntu / Debian
sudo ufw allow 2222
sudo ufw reload
CentOS系
sudo firewall-cmd –permanent –add-port=2222/tcp
sudo firewall-cmd –reload
2. 権限・ユーザー系のエラー
❌ usermod: group ‘sudo’ does not exist
- 原因
-
CentOS系にはUbuntu / Debianと異なり
sudoグループが存在しません。CentOS系では管理権限グループはwheelです。
対処:CentOS系では wheel グループを使う
usermod -aG wheel username
| OS | sudo権限グループ | コマンド |
|---|---|---|
| Ubuntu / Debian | sudo | usermod -aG sudo username |
| CentOS系 | wheel | usermod -aG wheel username |
❌ sudo: permission denied
- 原因
-
ログイン中のユーザーにsudo権限が付与されていません。権限付与後、一度ログアウトして再ログインしないと反映されないケースもあります。
対処1:sudo権限を付与する(rootでログインして実行)
| OS | コマンド |
|---|---|
| Ubuntu / Debian | usermod -aG sudo username |
| CentOS系 | usermod -aG wheel username |
対処2:グループが反映されているか確認する
groups username
❌ command not found
- 原因
-
対象のコマンド(ufw / firewall-cmd など)がインストールされていません。
対処:コマンドの存在を確認してからインストールする
which ufw
which firewall-cmd
出力がない場合はインストールが必要です。各コマンドのインストール方法は次のファイアウォール系エラーのセクションを参照してください。
3. ファイアウォール系のエラー
❌ ufw: command not found
UFWがインストールされていません。Ubuntu / Debianでは以下でインストールできます。
sudo apt install ufw -y
❌ FirewallD is not running
CentOS系でfirewalldが起動していません。以下で起動・自動起動設定を行います。
sudo systemctl start firewalld
sudo systemctl enable firewalld
❌ ファイアウォールを有効化したら自分がSSHできなくなった
- 原因
復旧手順:VPS管理画面のコンソール機能でログイン後、以下を実行する
Ubuntu / Debian(UFWを一時無効化)
sudo ufw disable
UFWを無効化後、SSHポートを許可してから再度有効化します。
sudo ufw allow 2222
sudo ufw enable
CentOS系(一時的にSSHポートを追加開放)
sudo firewall-cmd –add-port=2222/tcp
sudo firewall-cmd –reload
予防策:必ず ufw enable の前に sudo ufw status でSSHポートの許可状況を確認してください。設定後は別のターミナルウィンドウからSSH接続をテストし、問題ないことを確認してから既存の接続を切るのが鉄則です。
4. パッケージ管理(apt / dnf)エラー
❌ apt update でエラーが出る
- 主な原因
-
- リポジトリのミラーサーバーが一時的に不具合を起こしている
- ネットワーク接続の問題
対処:キャッシュをクリアして再実行する(Ubuntu / Debian)
sudo apt clean
sudo apt update
❌ Could not get lock / dpkg lock
- 原因
-
別のaptプロセスが実行中です。自動アップデートや前回のインストールが完了していない状態で
aptを実行すると発生します。
対処1:実行中のaptプロセスを確認する(Ubuntu / Debian)
ps aux | grep apt
対処2:プロセスが残っていた場合は終了させる(Ubuntu / Debian)
sudo kill -9 プロセスのPID番号
❌ dnf update でエラーが出る
対処:キャッシュをクリアして再実行する(CentOS系)
sudo dnf clean all
sudo dnf update -y
5. fail2ban関連エラー
❌ fail2ban が起動しない
まず状態を確認する(OS共通)
sudo systemctl status fail2ban
エラーメッセージを確認し、次の原因別に対処します。
| エラーの内容 | 原因 | 対処 |
|---|---|---|
| jail.local の構文エラー | 設定ファイルの記述ミス | jail.local を開いてスペル・スペースを確認 |
| ポート番号の不一致 | jail.localのport設定がSSHポートと異なる | jail.local の port = をSSHポートに合わせる |
| ログファイルが見つからない | logpath の指定が間違っている | OS別のログパス(下記)を確認 |
| OS | SSHログのパス |
|---|---|
| Ubuntu / Debian | /var/log/auth.log |
| CentOS系 | /var/log/secure |
❌ jail.local の読み込みエラー
設定ファイルを開いてスペルとスペースを確認します。
sudo nano /etc/fail2ban/jail.local
特に以下の点を確認してください。
[sshd]のセクション名が正確かどうかenabled = trueの=前後に半角スペースがあるかどうかport =に設定したSSHポート番号が正しいかどうか
❌ fail2ban に自分のIPがブロックされた
SSH接続に複数回失敗すると、自分のIPアドレスがfail2banにブロックされることがあります。以下のコマンドで解除できます。
ブロック中のIPを確認する(OS共通)
sudo fail2ban-client status sshd
自分のIPのブロックを解除する(OS共通)
sudo fail2ban-client set sshd unbanip 自分のIPアドレス
6. SSL / certbot エラー
❌ certbot: command not found
certbotがインストールされていません。以下でインストールします。
| OS | コマンド |
|---|---|
| Ubuntu / Debian | sudo apt install certbot python3-certbot-nginx -y |
| CentOS系 | sudo dnf install certbot python3-certbot-nginx -y |
❌ Failed authorization / Challenge failed
- 原因
-
- ファイアウォールでポート80(HTTP)が閉じている
- ドメインのDNSがサーバーのIPに向いていない
対処1:ポート80を開放する
Ubuntu / Debian
sudo ufw allow 80
sudo ufw reload
CentOS系
sudo firewall-cmd –permanent –add-service=http
sudo firewall-cmd –reload
対処2:DNSの確認(OS共通)
dig ドメイン名 +short
表示されたIPアドレスがVPSのグローバルIPと一致していることを確認してください。
❌ nginx が原因で certbot が失敗する
nginxが停止しているか、設定に問題がある可能性があります。
対処:nginxの状態確認と再起動(OS共通)
sudo systemctl status nginx
sudo systemctl restart nginx
7. 最悪ケース|SSHログイン完全不能からの復旧
ファイアウォール設定ミスやSSH設定ミスにより、SSHで完全にサーバーに入れなくなることがあります。この状態でも、VPS管理画面のコンソール機能を使えば復旧できます。
筆者はSSHポート変更とファイアウォール設定の順番を誤り、自分がサーバーにログインできなくなった経験があります。コンソール機能で復旧できましたが、30分以上かかりました。「スナップショットを取ってから作業する」が最も確実な予防策です。
復旧手順
ConoHa VPS・Xserver VPS・さくらのVPSはいずれも管理画面からコンソール機能を提供しています。SSHとは独立した接続方法のため、SSHポートやファイアウォールの設定に関係なくサーバーにアクセスできます。
管理画面の「コンソール」または「VNCコンソール」をクリックしてブラウザ上でサーバーを操作します。rootでログインできます。
以下のコマンドでファイアウォールを一時停止し、SSHで接続できることを確認してから原因を修正します。
Ubuntu / Debian
sudo ufw disable
sudo systemctl restart ssh
CentOS系
sudo systemctl stop firewalld
sudo systemctl restart sshd
SSHで接続できることを確認後、ファイアウォールの設定を正しく修正してから再度有効化してください。
やりがちなミスTOP5|設定前に必ず確認
VPSセキュリティ設定で実際に詰まるケースの大部分は、以下の5つのミスのどれかです。設定前にチェックリストとして使ってください。
| 順位 | ミスの内容 | 予防策 |
|---|---|---|
| 1位 | ファイアウォール有効化→SSHポート許可の順番ミス | ufw enable の前に ufw status で確認 |
| 2位 | SSH鍵認証が動作確認前にパスワード認証を無効化 | 必ず別ウィンドウで鍵認証の接続テストをしてから無効化 |
| 3位 | sudo権限未付与のままrootログインを禁止 | ②一般ユーザー作成→sudo付与→接続確認→①rootログイン禁止の順番で行う |
| 4位 | SSHポート変更後にファイアウォールで新ポートを開放していない | ポート変更→ファイアウォール開放→SSH接続テスト→旧ポート閉鎖の順番で行う |
| 5位 | fail2banで自分のIPがブロックされる | 自分のIPを ignoreip に設定しておく(後述) |
よくある質問(FAQ)
- コンソール機能はどのVPSサービスでも使えますか?
-
ConoHa VPS・Xserver VPS・さくらのVPSはいずれも管理画面からコンソール機能を提供しています。ただし機能名や操作方法はサービスごとに異なります。いざというときに迷わないよう、あらかじめ管理画面でコンソールの場所を確認しておくことをおすすめします。
- スナップショットがあれば詰みを防げますか?
-
はい、最も確実な保険です。セキュリティ設定を始める前にスナップショットを取っておけば、設定を誤ってもその時点の状態に即座に戻せます。ConoHa VPSやXserver VPSは管理画面から数クリックで設定できます。さくらのVPSはバックアップが有料オプション(月額2,420円〜)のため、契約前に確認してください。
- エラーが解決しない場合はどうすればいいですか?
-
まずエラーメッセージをそのままコピーして検索することをおすすめします。それでも解決しない場合は、各VPSサービスのサポートに問い合わせてください。Xserver VPSはサポートが充実しており、初心者でも相談しやすい環境が整っています。
まとめ|エラーが出ても慌てない
VPSセキュリティ設定のエラー対処集を7カテゴリに分けて解説しました。
難しいエラーではなく、確認不足が原因のケースがほとんどです。焦らずに設定手順を最初から確認しましょう。
ConoHa VPS・Xserver VPS・さくらのVPS、いずれもコンソール機能があります。SSHとは独立したアクセス手段なので、最終的な「保険」として機能します。
設定前にスナップショットを取っておけば、どんなミスをしても数クリックで初期状態に戻せます。数百円/月のコストで大きな安心を得られます。
設定の具体的な手順については「VPS初期設定のセキュリティ対策17選【コマンド完全版】」を、セキュリティの考え方については「VPSの初期設定でやるべきセキュリティ対策17選【初心者でもできる完全ガイド】」を合わせて参照してください。











