この記事では、Xserver VPSにSSH接続する2つの方法を解説します:

  1. Windows標準のOpenSSHクライアントを使用する方法
  2. WSL2(Ubuntu環境)から接続する方法
    それぞれの環境に応じて、適切な方法を選択してください。

前提条件

  • Xserver VPS が稼働中で、VPSパネルからSSH接続用の設定が有効になっていること
  • Xserver VPSで発行された PEM形式の秘密鍵 をダウンロード済みであること

方法1: Windows標準のOpenSSHクライアントを使用する場合

必要な環境

  • Windows 11
  • Windows標準のOpenSSHクライアント(PuTTYは使用しません)

手順1: WindowsにOpenSSHクライアントがインストールされているか確認

  1. 管理者権限の PowerShell を開き、以下のコマンドでOpenSSHクライアントの状態を確認します。
powershell
1
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
  1. 結果で OpenSSH.ClientStateInstalled となっていればOKです。
    もし NotPresent と表示された場合は、以下のコマンドでインストールしてください。
powershell
1
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  1. インストール後、PowerShellやコマンドプロンプトを再起動してください。

手順2: 秘密鍵ファイルの配置とアクセス権の設定

  1. 秘密鍵ファイルの移動
    ダウンロードフォルダにある秘密鍵(例:myvps.pem)を、C:\Users\<ユーザー名>\.ssh\ フォルダへ移動します。
    ※例:PowerShellで実行する場合
powershell
1
Move-Item C:\Users\<ユーザー名>\Downloads\myvps.pem C:\Users\<ユーザー名>\.ssh\
  1. 秘密鍵のアクセス権の調整
    秘密鍵ファイルは、他のユーザーに読まれないように権限を厳しく設定する必要があります。
    以下のPowerShellコマンドを実行して、継承を無効にし、現在のユーザー、Administrators、SYSTEM のみにアクセスを許可します。
powershell
1
2
$keyFile = "$env:USERPROFILE\.ssh\myvps.pem"
icacls $keyFile /inheritance:r /grant:r $env:USERNAME:F /grant:r Administrators:F /grant:r SYSTEM:F

無効なパラメーター “/grant:r”と表示された場合は、–% エスケープシーケンスを使用する(PowerShell v3以降)

powershell
1
icacls $keyFile --% /inheritance:r /grant:r %USERNAME%:F /grant:r Administrators:F /grant:r SYSTEM:F
  1. 設定後、エクスプローラーの「プロパティ」→「セキュリティ」タブから権限を確認してください。

手順3: SSH接続の実行

  1. PowerShellまたはコマンドプロンプトを開き、以下のコマンドを入力してXserver VPSに接続します。
    ※ここでの <ユーザー名> は通常 root となり、<VPSのIPアドレス> はXserver VPSのIPアドレスです。
bash
1
ssh -i C:\Users\<ユーザー名>\.ssh\myvps.pem root@<VPSのIPアドレス>
  1. 初回接続時に、ホストの確認メッセージが表示されたら「yes」と入力して続行します。
    その後、正しいパスワード認証(または鍵認証)が行われ、VPSのシェル(例:root@hostname:~#)が表示されれば接続完了です。

手順4: SSH設定ファイル(config)の作成(任意)

毎回コマンドラインで長いオプションを入力するのが手間な場合は、SSH設定ファイルを作成すると便利です。

  1. C:\Users\<ユーザー名>\.ssh\config をエディタで開き、以下の内容を追加します。
plaintext
1
2
3
4
5
Host myvps
HostName <VPSのIPアドレス>
User root
Port 22
IdentityFile ~/.ssh/myvps.pem
  1. 保存後、PowerShellまたはコマンドプロンプトで ssh myvps と入力するだけで接続できるようになります。

方法2: WSL2(Ubuntu)から接続する場合

WSL2上のUbuntuからも、同様の方法でSSH接続が可能です。

必要な環境

  • Windows 11にWSL2とUbuntuがインストール済みであること

手順

  1. WSL2のUbuntuターミナルを開きます
  2. 秘密鍵用のディレクトリを作成し、適切な権限を設定します:
bash
1
2
mkdir -p ~/.ssh
chmod 700 ~/.ssh
  1. Windowsのダウンロードフォルダから秘密鍵をコピーします:
    秘密鍵の権限も設定しておきます。
bash
1
2
cp /mnt/c/Users/<ユーザー名>/Downloads/myvps.pem ~/.ssh/
chmod 600 ~/.ssh/myvps.pem
  1. SSH接続を実行します:
bash
1
ssh -i ~/.ssh/myvps.pem root@<VPSのIPアドレス>

トラブルシューティング

Permission denied, please try again.

  • 原因: 秘密鍵のアクセス権が緩すぎる場合に発生します。
  • 対策: 上記のWindowsの「手順2」で説明した icacls コマンドによるアクセス権の調整を確認してください。

Host key verification failed.

  • 原因: 以前のホスト鍵情報と現在のサーバーのホスト鍵が一致しない場合に発生します。
  • 対策: C:\Users\<ユーザー名>\.ssh\known_hosts ファイルから該当するエントリを削除し、再接続してください。

Connection timed out.

  • 原因: VPSのIPアドレス、SSHポート(通常22番)の設定ミスや、ファイアウォールの設定が原因の可能性があります。
  • 対策: VPSパネルで正しいIPアドレスおよびSSH設定(ポート、ファイアウォール)が有効になっているか確認してください。

まとめ

本記事では、Xserver VPSへのSSH接続について、以下の2つの方法を解説しました:

  1. Windows標準のOpenSSHクライアントを使用する方法

    • OpenSSHクライアントのインストール確認
    • 秘密鍵の配置とアクセス権設定
    • SSH接続の実行
  2. WSL2(Ubuntu)から接続する方法

    • 秘密鍵の配置と権限設定
    • SSH接続の実行

それぞれの環境や用途に応じて、適切な方法を選択してください。

参考リンク