skip to content
barorin&?

Windows 11からVSCode Remote-SSHでVPSに接続する

/ 8 min read

Table of Contents

はじめに

この記事では、Windows 11上のVSCodeからRemote-SSHを使ってVPSに接続する手順をまとめます。
特に次の3点に焦点を当てています。

  • 秘密鍵の「正しい置き場所」
  • パスフレーズ付き秘密鍵の扱い方
  • SSHポートが22以外の場合の設定方法

ローカル環境は Windows 11、VPS側は一般的なLinuxサーバー(Ubuntuなど)を想定しています。

全体の構成イメージ

やりたいことはシンプルで、

  • Windows 11 上の VSCode から
  • SSH 経由で VPS に接続し
  • VSCode 上でリモートのファイルを編集・開発する

という構成です。

このとき、キモになるのが以下の3ファイル場所です。

  • 秘密鍵: C:\Users\<ユーザー名>\.ssh\id_xxxxx など
  • SSH 設定: C:\Users\<ユーザー名>\.ssh\config
  • known_hosts: C:\Users\<ユーザー名>\.ssh\known_hosts(初回接続時に自動で更新)

秘密鍵の置き場所(Windows 11)

Windows 11では、ユーザーごとのホームディレクトリ直下に.sshフォルダを作り、その中に秘密鍵を置くのが最もシンプルです。

  • パス:
    C:\Users\<あなたのユーザー名>\.ssh\
  • 例:
    C:\Users\taro\.ssh\id_xxxxx

この場所に置いておくと、

  • コマンドラインのsshコマンド
  • VSCode Remote-SSH

の両方がデフォルトでこの秘密鍵を探してくれるため、設定が楽になります。

SSH 設定ファイル(config)の場所と役割

config の場所

VSCode Remote-SSHが通常使用するSSH設定ファイルは次の場所です。

  • ユーザー用:
    C:\Users\<ユーザー名>\.ssh\config

この記事では、このユーザー用 config に VPS の設定を書いていきます。

config の基本構造

最小限の設定例は次のようになります。

Terminal window
Host my-vps
HostName xxx.xxx.xxx.xxx # VPS のIPまたはホスト名
User ubuntu # VPS 上のユーザー名
IdentityFile ~/.ssh/id_xxxxx
IdentitiesOnly yes

それぞれの意味は以下の通りです。

  • Host: VSCode や ssh コマンドから呼び出すときの「ニックネーム」
  • HostName: 実際の接続先(VPS のグローバルIPやドメイン)
  • User: VPS 側のログインユーザー(root, ubuntu, ec2-user など)
  • IdentityFile: 使用する秘密鍵へのパス
  • IdentitiesOnly yes: 指定した鍵だけを使うようにするオプション(余計な鍵を試さない)

ここまで書いておくと、ターミナルでは ssh my-vps、VSCode では my-vps を選ぶだけで接続できるようになります。

秘密鍵にパスフレーズを設定している場合

秘密鍵にパスフレーズを付けていても問題なく使えます。
考え方は、

  • 毎回入力しても良いか
  • 一度入力したらキャッシュしたいか

で分かれます。

1. 毎回 VSCode でパスフレーズを入力する

最もシンプルなのは、config に鍵を指定し、そのまま使う方法です。

Terminal window
Host my-vps
HostName xxxx.xxx.xxx.xxx
User ubuntu
IdentityFile ~/.ssh/id_xxxxx # パスフレーズ付き鍵
IdentitiesOnly yes

この設定で Remote-SSH から接続すると、VSCode 側がパスフレーズ入力ダイアログを出してくれます。
セキュリティ的には安全ですが、接続のたびに入力が必要になります。

2. ssh-agent でパスフレーズをキャッシュする

Windows 11 には OpenSSH の ssh-agent が標準で入っているため、これを使うと

  • 起動直後に1回パスフレーズを入力
  • その後は VSCode からの接続で聞かれない

という運用が可能です。

ssh-agent を有効化する

管理者権限の PowerShell を開き、次を実行します。

Terminal window
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent # Status が Running になっていることを確認

これで、Windows 起動時に ssh-agent が自動起動するようになります。

鍵を ssh-agent に登録する

通常のユーザー権限の PowerShell で、次を実行します。

Terminal window
ssh-add $env:USERPROFILE\.ssh\id_xxxxx
# 実行するとパスフレーズを1回聞かれる

成功すると、ssh-agent がこの鍵とパスフレーズを保持します。
あとは VSCode を起動して Remote-SSH で接続すれば、パスフレーズ入力なしで接続できます。

ポートが22番以外の場合の設定

VPS側でSSHポートを22以外(例えば2222)に変えているケースもよくあります。
この場合も、configPortを書くだけです。

config に Port を追加する

Terminal window
Host my-vps
HostName xxx.xxx.xxx.xxx
User ubuntu
Port 2222 # ← ここでポート番号を指定
IdentityFile ~/.ssh/id_xxxxx
IdentitiesOnly yes

これで、ssh my-vpsもVSCode Remote-SSHのmy-vpsも、デフォルトの22ではなく2222に接続します。

よくあるハマりどころ

  • VSCode 側で、HostName に直接 xxx.xxx.xxx.xxx を打って接続していると、Port 設定が効きません
    → 必ず Host my-vps に書いた「名前」を選ぶようにします。

  • VSCode がどの config を読んでいるか分からない場合は、設定ファイルを明示します
    VSCode の設定(settings.json)に次のように書きます。

    "remote.SSH.configFile": "C:\\Users\\<ユーザー名>\\.ssh\\config"

この2点を揃えておけば、「なぜか22番に繋ぎに行く」といったトラブルはかなり減ります。

VSCode Remote-SSH からの接続手順

ここまでの設定が完了していれば、VSCode からの操作は非常にシンプルです。

  1. VSCode に「Remote - SSH」拡張機能をインストールする
  2. VSCode 左下の緑色のエリアをクリックし、「Remote-SSH: Connect to Host…」を選ぶ
  3. 一覧から my-vps を選択する(configHost 名)
  4. 初回接続時は、接続先を known_hosts に追加するか聞かれるので承認する
  5. 接続が完了すると、新しいウィンドウでリモート側の VSCode セッションが立ち上がる
  6. 左側の「Explorer」からリモートのフォルダを選び、「Open Folder」で開く

これで、リモートの VPS 上のファイルを、ローカルの VSCode から直接編集できるようになります。

まとめ

この記事では、Windows 11のVSCode Remote-SSHでVPSに接続するために必要なポイントを整理しました。

  • 秘密鍵は C:\Users\<ユーザー名>\.ssh\ に置くのが基本
  • C:\Users\<ユーザー名>\.ssh\configHost, HostName, User, IdentityFile, Port を設定する
  • パスフレーズ付き鍵は、そのまま使うか ssh-agent でキャッシュする
  • ポートが 22 以外のときは Port を忘れずに指定する
  • VSCode 側では Host 名を選ぶことと、必要に応じて remote.SSH.configFile を明示することが重要

このあたりをテンプレ化しておくと、新しい VPS を立てたときも数分で VSCode から接続できるようになります。