Visual Studio Code Server
Visual Studio Code Server は、デスクトップ PC や仮想マシン (VM) などのリモート開発マシン上で実行できるサービスです。これにより、SSH を必要とせずに、ローカルの VS Code クライアントからそのリモートマシンへどこからでも安全に接続できるようになります。
VS Code Server とは?
VS Code では、ユーザーが最も生産性を高められる環境をシームレスに活用できるようにしたいと考えています。VS Code Remote Development 拡張機能を使用すると、Windows Subsystem for Linux (WSL)、SSH 経由のリモートマシン、および開発コンテナー内で、VS Code から直接作業できます。これらの拡張機能はリモート環境にサーバーをインストールし、ローカルの VS Code がリモートのソースコードやランタイムとスムーズに対話できるようにします。
現在、私たちはスタンドアロンの「VS Code Server」を提供しています。これは、リモート拡張機能で使用されるものと同じ基礎サーバーに、対話型 CLI や vscode.dev への安全な接続の促進といった機能を追加したサービスです。

アーキテクチャ
私たちは、デスクトップかブラウザか、ローカルかリモートかに関わらず、どのような方法でエディターを使用しても一貫した VS Code エクスペリエンスを提供したいと考えています。
VS Code Server へのアクセス機能は、既存の code CLI に組み込まれています。
CLI は、VS Code クライアントとリモートマシンの間にトンネルを確立します。トンネリングは、データをあるネットワークから別のネットワークへ安全に送信します。

VS Code Server エクスペリエンスには、いくつかのコンポーネントが含まれています。
- VS Code Server: VS Code のリモートエクスペリエンスを可能にするバックエンドサーバー。
- Remote - Tunnels 拡張機能: ローカルの VS Code クライアントに自動的に読み込まれ、リモートマシンへの接続を容易にします。
利用シナリオ
VS Code Server を使用すると、次のような新しい方法で VS Code を利用できます。
- SSH サポートが制限されている、または Web ベースのアクセスが必要なリモートマシンでの開発。
- iPad/タブレットや Chromebook など、VS Code デスクトップ版のインストールをサポートしていないマシンでの開発。
- すべてのコードをブラウザのサンドボックス内で実行できる、クライアントサイドのセキュリティ上の利点の活用。
はじめに
トンネリングを有効にするには、以下の2つの経路を選択できます。詳細はそれぞれのドキュメントで説明されています。
試してみる
ライセンスおよびその他のコマンド
VS Code Server を初めて実行する際、ライセンス条項への同意が求められます。VS Code Server のライセンスはこちらで確認できます。
* Visual Studio Code Server
*
* By using the software, you agree to
* the Visual Studio Code Server License Terms (https://aka.ms/vscode-server-license) and
* the Microsoft Privacy Statement (https://privacy.microsoft.com/en-US/privacystatement).
その他の CLI コマンドは code -h を実行して確認できます。特にトンネリング関連のコマンドは code tunnel -help で確認可能です。

拡張機能のコマンド
CLI と同様に、VS Code Remote Tunnels 拡張機能にも追加のコマンドがあります。これらは VS Code でコマンドパレット (F1) を開き、Remote Tunnels と入力することで確認できます。詳細については Remote Tunnels ドキュメントを参照してください。
テレメトリ
テレメトリを無効にしたい場合は、VS Code Server の起動時に --disable-telemetry を渡すことができます(例: code tunnel --disable-telemetry)。また、エラーのみを収集するなど、初期のテレメトリレベルを指定したい場合は、--telemetry-level に続けてレベル(例: error)を渡すことができます。
CLI でテレメトリが無効にされていない場合、VS Code Server は接続成功後、クライアント側のテレメトリ設定(vscode.dev またはデスクトップ版でのテレメトリ設定)に従うようになります。
よくある質問
VS Code Server は、複数のユーザーが同じリモートインスタンスにアクセスするように設計されていますか?
いいえ、サーバーのインスタンスは単一のユーザーによってアクセスされるように設計されています。
VS Code Server をサービスとしてホストできますか?
いいえ、VS Code Server ライセンスで規定されている通り、サービスとしてのホストは許可されていません。
VS Code Server が使用するエンドポイントのリストはありますか?
制限された環境で作業している場合、VS Code Server が以下の記事に記載されているエンドポイントにアクセスできることを確認する必要があるかもしれません。
- https://vscode.dokyumento.jp/docs/setup/network#_common-hostnames
- https://vscode.dokyumento.jp/docs/remote/ssh#_what-are-the-connectivity-requirements-for-the-vs-code-server-when-it-is-running-on-a-remote-machine-vm
他に拡張機能の制限はありますか?
Web ベースの VS Code インスタンスを使用する場合、純粋な UI 拡張機能はサポートされていません。詳細については、拡張機能作者向けの Remote Development ガイドを参照してください。
ブラウザの制限はありますか?
ブラウザで作業する場合、考慮すべき制限や設定手順がいくつかあります。詳細については VS Code for the Web ドキュメントを参照してください。
VS Code Server を最新の状態に保つにはどうすればよいですか?
リモートマシンに接続した際、アップデートが利用可能な場合は VS Code 内に通知が表示され、その通知から直接アップデートを行うことができます。
キーリングストレージに関するエラーが表示されます。どうすればよいですか?
設定同期 (Settings Sync) には、設定同期サーバーに対する認証が必要です。対応するシークレットはサーバー上に保存されます。これにはサーバー上でのキーリングの設定が必要です。キーリングが設定されていない場合、VS Code Server はサーバー上に保存されるメモリ内シークレットにフォールバックします。この場合、シークレットはサーバーの生存期間中のみ保持されます。
この Issue が詳細な背景を提供しており、トラブルシューティングに役立つ可能性があります。それでも問題が解決しない場合は、VS Code Remote GitHub リポジトリに新しい Issue を作成してください。
フィードバックの提供や問題を報告するにはどうすればよいですか?
問題やフィードバックがある場合は、VS Code Remote GitHub リポジトリに Issue を作成してください。Issue を作成する際は、詳細ログを含めてください。これは -v フラグを指定して VS Code Server を起動することで有効にできます: code -v tunnel。
VS Code Server の問題のみをフィルタリングするには、code-server ラベルを使用してください。