VPSサーバーを借りたら、まず最初に行うべきセキュリティ対策がSSH鍵認証の設定です。デフォルトのパスワード認証のままでは、総当たり攻撃(ブルートフォース)の標的となり、乗っ取りリスクが非常に高くなります。
本記事では、ssh 鍵認証 vps 設定をテーマに、Linux初心者の方でも迷わず作業できるよう、鍵ペアの生成から公開鍵の登録、パスワード認証の無効化までを段階的に解説します。ConoHa、Xserver VPS、さくらのVPSなど、主要なVPSサービスに共通して使える手順です。
SSH鍵認証とは?なぜVPSに必須なのか
SSH鍵認証とは、公開鍵と秘密鍵のペアを使ってサーバーへ接続する仕組みです。パスワード認証との違いを表にまとめました。
| 項目 | パスワード認証 | SSH鍵認証 |
|---|---|---|
| セキュリティ強度 | 低い(推測可能) | 非常に高い |
| ブルートフォース耐性 | 弱い | 実質不可能 |
| 利便性 | 毎回入力必要 | 自動接続可能 |
| 鍵の管理 | 不要 | 秘密鍵の厳重管理が必須 |
2026年現在、VPSに対する自動攻撃はますます高度化しており、SSH鍵認証はもはや「推奨」ではなく「必須」と言える時代になっています。

事前準備:必要な環境と情報
作業を始める前に、以下を用意してください。
- VPSサーバーのIPアドレス
- 初期ログイン用のユーザー名とパスワード(またはコンソールアクセス)
- ローカルPC(Linux / macOS / Windows 10以降)
- ターミナル(macOS/Linux)またはPowerShell/Windows Terminal
Windows 10/11には標準でOpenSSHクライアントが搭載されているため、追加ソフトなしで作業できます。
ステップ1:ローカルPCでSSH鍵ペアを生成する
まずは自分のPC上で鍵ペアを作成します。ターミナルを開き、以下のコマンドを実行してください。
ssh-keygen -t ed25519 -C "[email protected]"
ed25519は現在推奨されている最新のアルゴリズムで、RSAより高速かつ安全です。古い環境で互換性が必要な場合のみ、以下のRSAを使ってください。
ssh-keygen -t rsa -b 4096 -C "[email protected]"
コマンド実行後、以下のように尋ねられます。
- 保存先:デフォルトの
~/.ssh/id_ed25519でEnterでOK - パスフレーズ:秘密鍵の暗号化用パスワード。必ず設定することを強く推奨
- 確認用パスフレーズ:同じものを再入力
完了すると、以下の2つのファイルが生成されます。
~/.ssh/id_ed25519:秘密鍵(絶対に外部に漏らさない)~/.ssh/id_ed25519.pub:公開鍵(サーバーに登録する)
ステップ2:公開鍵をVPSに登録する
公開鍵をVPSサーバー側に登録する方法は主に2つあります。
方法A:ssh-copy-idコマンドを使う(最も簡単)
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@your_vps_ip
初期パスワードを入力すれば、自動的に ~/.ssh/authorized_keys に公開鍵が追記されます。
方法B:手動で登録する
ssh-copy-idが使えない環境(Windows標準環境など)では、手動で登録します。
1. 公開鍵の内容を表示してコピー
cat ~/.ssh/id_ed25519.pub
2. VPSにパスワードでログイン
ssh username@your_vps_ip
3. .sshディレクトリを作成し公開鍵を登録
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "コピーした公開鍵の内容をここに貼り付け" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
パーミッションは非常に重要です。権限が緩いとSSHが公開鍵を無視してしまいます。
ステップ3:鍵認証でログインできるか確認する
一度ログアウトして、鍵認証で接続できるかテストします。
ssh -i ~/.ssh/id_ed25519 username@your_vps_ip
パスフレーズを入力してログインできれば成功です。この確認が終わるまで、絶対に次のステップに進まないでください。

ステップ4:パスワード認証を無効化する
鍵認証で確実にログインできることを確認したら、パスワード認証を無効化してセキュリティを強化します。
1. sshd_configを編集
sudo nano /etc/ssh/sshd_config
2. 以下の項目を変更
| 設定項目 | 変更後の値 | 意味 |
|---|---|---|
| PasswordAuthentication | no | パスワード認証を無効化 |
| PubkeyAuthentication | yes | 公開鍵認証を有効化 |
| PermitRootLogin | no | rootでの直接ログインを禁止 |
| ChallengeResponseAuthentication | no | チャレンジ応答認証も無効化 |
3. SSHサービスを再起動
sudo systemctl restart ssh
Ubuntu 24.04以降では sudo systemctl restart sshd の場合もあります。
ステップ5:SSH接続を簡単にするconfig設定(おすすめ)
毎回長いコマンドを打つのは面倒です。ローカルPCの ~/.ssh/config に以下を記述すると便利です。
Host myvps
HostName your_vps_ip
User username
Port 22
IdentityFile ~/.ssh/id_ed25519
これで ssh myvps だけで接続できるようになります。
さらにセキュリティを強化する追加設定
基本設定に加え、以下を実施するとより堅牢になります。
- SSHポートを22番から変更(例:52200番など)
- fail2ban導入で不正アクセスを自動ブロック
- ufwやfirewalldでファイアウォール設定
- 特定IPからのみ接続許可(AllowUsers設定)
よくあるトラブルと対処法
「Permission denied (publickey)」と出て接続できない
- 秘密鍵のパスが正しいか確認(
ssh -vで詳細ログ表示) - サーバー側の
~/.sshは700、authorized_keysは600になっているか - ホームディレクトリのパーミッションが緩すぎない(755以下)か
パスワード認証を無効化したらログインできなくなった
各VPSプロバイダが提供するコンソール(Webブラウザ経由の緊急アクセス)を使えば、鍵認証を経由せずにログインできます。ConoHaやXserver VPS、さくらのVPSにはすべてこの機能があります。
Windowsで公開鍵をコピーするときに改行が混入する
メモ帳ではなく、PowerShellの type コマンドや、Windows Terminalで直接表示してコピーするのが確実です。
ssh-agentにパスフレーズを毎回聞かれる
以下のコマンドで鍵をエージェントに登録すれば、セッション中は再入力不要になります。
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
FAQ:SSH鍵認証に関するよくある質問
Q1. 秘密鍵をなくしたらどうなりますか?
該当のVPSにログインできなくなります。プロバイダのコンソールから緊急ログインし、新しい鍵を登録してください。だからこそ、パスフレーズ付きで秘密鍵をバックアップしておくことが重要です。
Q2. 複数のPCから同じVPSに接続したい場合は?
各PCで鍵ペアを生成し、それぞれの公開鍵を authorized_keys に追記してください。1つの秘密鍵を複数のPCで使い回すのは避けましょう。
Q3. ed25519とRSA、どちらを使うべき?
2026年現在はed25519が推奨です。より短い鍵長で高いセキュリティを実現でき、処理速度も高速です。特別な理由がない限りed25519を選びましょう。
Q4. ConoHaやXserver VPSでは管理画面から鍵を作成できますが、どちらが良い?
管理画面での鍵生成も可能ですが、秘密鍵をローカルで生成する方がセキュアです。秘密鍵がネットワーク上を通らないため、漏洩リスクが最小化されます。
Q5. パスフレーズは本当に必要ですか?
強く推奨します。万が一秘密鍵ファイルが盗まれても、パスフレーズがなければ悪用できません。ssh-agentと組み合わせれば利便性も損なわれません。
まとめ
VPSへのSSH鍵認証設定は、Linux初心者にとって最初の関門ですが、一度覚えれば全てのサーバー運用に応用できる重要スキルです。ポイントを再確認しましょう。
- ローカルPCで ed25519 鍵ペアを生成する
- 公開鍵をVPSの
authorized_keysに登録する - 鍵認証でログインできることを必ず確認する
- sshd_config でパスワード認証を無効化する
- fail2banやポート変更などで追加のセキュリティ対策を行う
正しく設定すれば、VPSは非常に安全なインフラとなります。この記事を参考に、ぜひ堅牢なサーバー環境を構築してください。

0 Comments