HELPER VPS

Windows から VPS に SSH 接続、PowerShell と PuTTY の使い方

Windows PC が1台あれば、別のソフトを買わなくても Linux サーバーにすぐ接続できます。標準で入っている PowerShell の ssh コマンドと、長く使われてきた PuTTY の2つの方法をまとめました。

接続前に準備するもの

SSH は、自分のパソコンとサーバーの間を暗号化してコマンドをやり取りする方法です。Linux VPS は最初から SSH サーバーが起動した状態で作成され、標準のポートは22番です。接続に必要な情報は3つだけです。

  • サーバーの IPv4 アドレス: サーバーページの概要に表示されます。
  • ユーザー名: 最初は root を使います。
  • root パスワード: サーバーページの root パスワード欄で「表示」を押すと確認できます。設定後7日間表示されるので、パスワードマネージャーに保存しておいてください。

サーバーの状態が実行中に変わってから接続します。サーバーの作成中や再インストール中なら、インストールが終わるまで少し待ってください。下のコマンドの YOUR_SERVER_IP は、自分のサーバーの IPv4 アドレスに置き換えて入力してください。

方法1. PowerShell 標準の ssh コマンドで接続

Windows 10 バージョン 1809 以降と Windows 11 には、OpenSSH クライアントが標準で入っています。別途インストールせずに、PowerShell や Windows ターミナルで Mac や Linux とまったく同じ ssh コマンドを使えます。

ステップ1. PowerShell を開く

スタートメニューで PowerShell またはターミナルを検索して開きます。下のコマンドで ssh が使える状態かを確認します。OpenSSH のバージョンが1行で表示されれば準備完了です。

PowerShell
ssh -V

バージョンではなくコマンドが見つからないという案内が表示されたら、設定のオプション機能で OpenSSH クライアントを追加してください。Windows 11 は「設定 > システム > オプション機能」、Windows 10 は「設定 > アプリ > オプション機能」にあります。管理者権限の PowerShell で、下のコマンド1行で追加することもできます。

PowerShell (管理者)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

ステップ2. サーバーに接続

PowerShell
ssh root@YOUR_SERVER_IP

はじめて接続するときは、サーバーのフィンガープリントを保存するかを尋ねる文が表示されます。yes と入力して Enter を押すとフィンガープリントが自分の PC の known_hosts ファイルに保存され、次回からは尋ねられません。続いて password の入力欄が表示されたら、サーバーページでコピーした root パスワードを貼り付けます。

Windows ターミナルや PowerShell のウィンドウでは、右クリックか Ctrl+Shift+V で貼り付けます。パスワードは入力中に画面に表示されないのが正常なので、1回だけ貼り付けて Enter を押してください。プロンプトが root@サーバー名:~# の形に変われば、接続に成功しています。

ステップ3. 最初のコマンドを実行

接続したらすぐに、システムを最新にしておくのがおすすめです。Ubuntu と Debian は apt update && apt upgrade -y、AlmaLinux と Rocky Linux は dnf upgrade -y を実行します。一般ユーザーの作成と更新の手順は、初回ログインガイドに詳しく載っています。作業が終わったら exit で接続を終了します。

PowerShell で SSH キーを使い、パスワードなしで接続

SSH キーを使えば毎回パスワードを貼り付ける必要がなく、パスワードを推測しようとする試行にもはるかに強くなります。Windows でも、同じ ssh-keygen コマンドでキーを作成します。

PowerShell
ssh-keygen -t ed25519

保存場所を尋ねられたら Enter で既定値を使い、キーのパスワード(パスフレーズ)は設定しておくことをおすすめします。2つのファイルが C:\Users\ユーザー名\.ssh フォルダに作成されます。id_ed25519 は秘密鍵で自分の PC にだけ置き、id_ed25519.pub がサーバーに設定する公開鍵です。公開鍵の内容は、下のコマンドで表示してコピーします。

PowerShell
Get-Content $env:USERPROFILE\.ssh\id_ed25519.pub

新しいサーバーなら、アカウントの SSH キーメニューに公開鍵を貼り付け、サーバー作成時にそのキーを選べば、最初からキーで接続できます。手順は SSH キーガイドにあります。すでに使っているサーバーには、下のコマンド1行で公開鍵を追加します。このとき1回だけ root パスワードを入力します。

PowerShell
type $env:USERPROFILE\.ssh\id_ed25519.pub | ssh root@YOUR_SERVER_IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

サーバーが複数あるなら、接続情報を名前で保存しておくと便利です。C:\Users\ユーザー名\.ssh\config ファイルをメモ帳で作成して下のように書けば、ssh myvps の1語で接続できます。

C:\Users\ユーザー名\.ssh\config
Host myvps
    HostName YOUR_SERVER_IP
    User root
    IdentityFile ~/.ssh/id_ed25519
    ServerAliveInterval 30

ServerAliveInterval 30 は30秒ごとに信号を送り、少し席を外しても接続が長く維持されるようにします。

方法2. PuTTY で接続

PuTTY は、Windows で長く使われてきた無料の SSH プログラムです。接続情報を名前ごとに保存しておき、ダブルクリックで開く方式が便利なら PuTTY がよく合います。公式サイト(putty.org)から64ビットのインストーラー(MSI)をダウンロードしてインストールすれば、PuTTY とキーを作成する PuTTYgen が一緒に入ります。

ステップ1. 接続情報の入力と保存

  • PuTTY を開くと Session の画面が表示されます。
  • Host Name にサーバーの IPv4 アドレス、Port に22を入れ、Connection type は SSH のままにします。
  • 左側の Connection > Data の Auto-login username に root と入力します。
  • Connection の Seconds between keepalives に30を入れると、接続が長く維持されます。
  • 再び Session の画面に戻り、Saved Sessions に名前(例: myvps)を入力して Save を押します。

ステップ2. 接続

保存した名前を選んで Open を押します。最初はサーバーのフィンガープリントを確認するウィンドウが表示され、Accept を押すとフィンガープリントが保存されます。password の欄が表示されたら、root パスワードを右クリックで貼り付けて Enter を押します。PuTTY では、右クリックが貼り付け、文字をドラッグするとそのままコピーになります。

ステップ3. PuTTYgen で SSH キーを使う

PuTTYgen を開き、Key の種類で EdDSA(Ed25519)を選んで Generate を押し、進行バーがいっぱいになるまで空白部分の上でマウスを動かします。Key passphrase を決め、Save private key で秘密鍵を .ppk ファイルとして保存します。

ウィンドウ上部の Public key for pasting into OpenSSH authorized_keys file 欄に表示された1行が公開鍵です。この行をアカウントの SSH キーメニューに登録するか、すでに使っているサーバーの ~/.ssh/authorized_keys ファイルの末尾に貼り付けます。次に PuTTY の Connection > SSH > Auth > Credentials で、Private key file for authentication に .ppk ファイルを選び、Session の画面で再び Save を押せば、次回からパスワードなしで接続できます。

PowerShell で作った OpenSSH のキーを PuTTY でも使いたい場合は、PuTTYgen の Conversions > Import key で id_ed25519 を読み込み、.ppk として保存してください。1つのキーで2つのプログラムを一緒に使えます。

Windows とサーバーの間でファイルを転送する

PowerShell には、ssh と一緒に scp コマンドも入っています。自分の PC のファイルをサーバーにアップロードしたり、サーバーのファイルを自分の PC にダウンロードしたりするときに使います。

PowerShell
scp .\site.zip root@YOUR_SERVER_IP:/root/
scp root@YOUR_SERVER_IP:/root/backup.tar.gz .\

フォルダごと転送するときは scp -r を付けます。エクスプローラーのようにドラッグ&ドロップする方式が便利なら、WinSCP のような SFTP プログラムに同じアドレス、ポート22、ユーザー root を入力してください。WinSCP は、PuTTY に保存したセッションと .ppk キーをそのまま読み込めます。

接続できないときの確認手順

ほとんどの場合は下の4つのいずれかなので、順番に確認すればすぐに接続し直せます。

  • Connection timed out: まずサーバーの状態が実行中か、IP アドレスが正しいかを確認します。ファイアウォールを有効にしているなら、SSH(22番)が許可されている必要があります。会社や学校のネットワークが22番を遮断している場合もあるので、スマートフォンのテザリングなど別のネットワークで一度試してください。
  • Permission denied: パスワードをもう一度コピーして、1回だけ貼り付けてください。前後の空白が一緒にコピーされていないかも確認します。7日が過ぎてパスワードが表示されない場合は、サーバーページの「新しい root パスワードを作成」で新しいパスワードを受け取ってください。
  • REMOTE HOST IDENTIFICATION HAS CHANGED: サーバーを再インストールするとサーバーのフィンガープリントが新しく作られるため表示される案内です。ssh-keygen -R YOUR_SERVER_IP で保存されている古いフィンガープリントを削除し、接続し直してください。
  • Connection refused: サーバー内の SSH サービスが止まっているか、ポートを変更した場合です。ポートを変えたなら ssh -p ポート番号 root@YOUR_SERVER_IP で接続します。

パスワードの再作成と再インストール後の接続手順は、再インストールと root パスワードのガイドにまとめています。接続に成功したら、基本のファイアウォールのガイドで使うポートだけを開けておいてください。

次にやっておきたいこと

SSH キーで接続できるようになったら、パスワードログインをオフにしてサーバーをさらに強固に守れます。キーでの接続を先に確認してから、サーバーで /etc/ssh/sshd_config ファイルの PasswordAuthentication を no に変え、SSH サービスを再起動します。Ubuntu と Debian は systemctl restart ssh、AlmaLinux は systemctl restart sshd です。

ウェブサイトやアプリを載せる予定なら、Docker のインストールガイドや WordPress のインストールガイドに進んでください。Windows のデスクトップがそのまま必要な作業なら、リモートデスクトップで接続する Windows VPS のほうがよく合います。

あわせて読みたいガイド

このガイドに続けて設定しておくとよい内容です。

すべてのガイドを見る