🔧

Windows11のRemote-SSH接続を安定化する3つの設定【Cursor・Windsurf・VS Code共通】

に公開

記事をなぜ作ったか

Windows 11ユーザー向けにRemote-SSH接続の頻繁な切断問題を解決した記録。

開発環境では、リモートサーバー上で快適に作業したい。でもWindows 11でのRemote-SSH接続は頻繁に切断される問題がある。

「また接続が切れた...」

この課題から、3つの設定の組み合わせに行き着いた。Windows特有のバグを回避し、接続を安定化できる。

以下、実際の構築手順をまとめた備忘録。

要約

  • Windows特有の接続問題を3つの設定で回避
  • Cursor・Windsurf・VS Code共通で使える
  • 設定はJSON形式で settings.json に追加

前提: Windows 11 + Cursor/Windsurf/VS Code、Remote-SSH接続先サーバーあり

1. 事前チェック

まず環境を確認。ここで不足がなければスムーズにすすむ。

項目 確認ポイント
OS Windows 11
IDE Cursor、Windsurf、VS Code のいずれか
SSH接続先 リモートサーバーへの接続情報
SSH設定 ~/.ssh/config にHost設定済み(推奨)
Remote-SSHとは?

Remote-SSHは、ローカルのエディタからリモートサーバー上のファイルを直接編集できる機能。サーバー上で開発しながら、手元のIDEの快適さを維持できる。

メリット:

  • ローカルと同じ快適な操作感
  • サーバーの高性能リソースを活用
  • チーム開発での環境統一

仕組み: IDEがSSH経由でサーバーに接続し、ファイル編集・実行を代行。

2. 3つの設定を追加

以下の設定を各IDEの settings.json に追加。

2-1. settings.json の場所

各IDEで設定ファイルの場所が異なる:

  • VS Code: C:\Users\<ユーザー名>\AppData\Roaming\Code\User\settings.json
  • Cursor: C:\Users\<ユーザー名>\AppData\Roaming\Cursor\User\settings.json
  • Windsurf: C:\Users\<ユーザー名>\AppData\Roaming\Windsurf\User\settings.json

2-2. 設定内容

{
  // 1. 接続方式をターミナルモードに変更(Windows安定化の鍵)
  "remote.SSH.useLocalServer": false,

  // 2. ログイン画面をターミナルで表示(トラブル原因が見える)
  "remote.SSH.showLoginTerminal": true,

  // 3. 接続先OSを事前指定(毎回の確認ダイアログを排除)
  "remote.SSH.remotePlatform": {
    "your-server": "linux"  // ← 実際のサーバー名に置き換える
  }
}

2-3. 設定ファイルの編集方法

GUI経由での編集(推奨):

  1. 各IDEで Ctrl+, を押して設定画面を開く
  2. 右上の⚙️アイコン「設定(JSON)を開く」をクリック
  3. 既存の設定の末尾(最後の}の前)に新しい設定を追加
  4. カンマで区切る
  5. 保存後、IDEを完全に再起動

2-4. 複数サーバーがある場合

"remote.SSH.remotePlatform": {
  "web-server": "linux",
  "db-server": "linux",
  "windows-server": "windows"
}

3. なぜこの設定で問題が解決するのか

3-1. useLocalServer: false でWindows問題を回避

Windowsでは内部プロセス共有モード(Local Server Mode)で接続が不安定になるバグがある。

ターミナルモードに切り替えることで、従来のSSHコマンドライン方式を使用し、安定した接続を確保。

3-2. showLoginTerminal: true でトラブル原因を可視化

接続失敗時のエラーメッセージがターミナルに表示されるため、原因の特定が容易。

特にパスワード認証・二要素認証・パスフレーズ入力が必要な環境で有効。

3-3. remotePlatform で確認ダイアログを排除

接続先OS(linux/windows/macOS)を事前指定することで、毎回のOS選択ダイアログを省略。

4. IDE別の注意点

Cursor

  • 独自の Anysphere Remote-SSH 拡張機能を使用
  • Microsoft製Remote-SSH拡張機能は使用不可
  • 拡張機能ID: @id:anysphere.remote-ssh で検索・インストール

Windsurf

  • 独自SSH実装が組み込み済み
  • AI機能「Cascade」がリモート環境でも動作
  • 制限事項: Linux x64アーキテクチャのリモートホストのみサポート
  • Dev Container対応済み
  • WSL対応(ベータ版)
Windsurf既知の問題
  • Cascade接続時に「Toggle Open Cascade」ボタンを複数回クリックが必要な場合あり
  • Windowsでパスワード入力時にcmd.exeウィンドウが表示される(将来改善予定)

出典: Windsurf Advanced Documentation

VS Code

  • Microsoft純正 Remote-SSH 拡張機能を使用
  • 最も標準的で安定したリモート開発環境
  • 継続的なアップデートとバグ修正

5. トラブルシュート早見表

問題が起きたら、まずここをチェック。

症状 最初に確認すること 対応方法
接続が頻繁に切れる useLocalServer の値 false に設定
エラー画面が出ない showLoginTerminal の値 true に設定
毎回OS選択を求められる remotePlatform の設定 サーバー名とOSを追加
設定したのに効かない IDEの再起動 完全に再起動すること
拡張機能が見つからない(Cursor) マーケットプレイス 手動インストールまたは再起動
JSON記法エラー カンマ・カッコの確認 最後の項目の後にカンマは不要

6. 次のステップ

基本的な接続が安定したら、応用も可能:

  • SSH鍵認証の設定: パスワード入力を省略
  • ポートフォワーディング: リモートサーバーのWebアプリをローカルで確認
  • Dev Containers: Docker環境での開発(Windsurf v1.11.0以降、VS Code、Cursor対応)

導入してみて

3つの設定の組み合わせで、Windows 11でのRemote-SSH接続問題を解決できた。

実際に導入してみて、[頻繁な切断から解放された]。[ストレスなく作業できるようになった]。

[シンプルな設定で大きな改善が得られること]だと思う。[この設定により、快適なリモート開発環境が実現できた]。

接続問題が続く場合、VS Code Serverのキャッシュクリア(Command Palette: "Remote-SSH: Kill VS Code Server on Host")を試す。この記事のトラブルシュート早見表は公式ドキュメントを併用してください。この記録が、同じような課題を抱えている人の参考になれば幸い。

参考リンク


Discussion