インターネット接続できない環境でRemoteSSH拡張を使用する(令和7年6月版)
はじめに
「インターネットにはつながってない。でもRemoteSSH拡張機能は使いたい」という状況は、特に日本ではそこそこあるようです。
ネットにある情報を探すと対処方法がいくつか見つかりますが、最近(令和7年6月)のVSCodeではうまく対応できなかったので、調べてみた結果を残しておきます。
RemoteSSH拡張機能のソースコードは令和7年6月時点では公開されていません。そのため、拡張機能に含まれているコードと、展開されるファイルから手順を検討しています。
前提条件
モジュール | バージョン |
---|---|
VSCode | 1.101.2 |
Remote - SSH | 0.120.0 |
Remote - SSH: Editing Configuration Files | 0.87.0 |
Remote Explorer | 0.5.0 |
作業にあたってインターネットから必要なファイルをダウンロードするための作業用PCが必要となります。
図中で「★」がついている「VS Code拡張機能(Remote - SSH)」および「VS Code Server」を手動でインストールします。
環境 | 目的 |
---|---|
作業用PC | セットアップに必要なファイルをダウンロードし、ローカルOSとリモートOSにコピーする環境 |
ローカルOS | VS Codeを実行する環境 |
リモートOS | RemoteSSHで接続し、作業を行う環境 |
事前準備
必要なファイルを準備します。事前準備の手順はすべて作業用PCで実施します。
コミットIDの確認
使用するVSCodeのコミットIDを確認します。コミットIDは「ヘルプ」→「バージョン情報」で確認できます。
「コピー」ボタンを押すと、表示されている内容がクリップボードにコピーされるので、メモ帳などに張り付けると作業が楽です。
以下手順では1.101.2のコミットIDである 2901c5ac6db8a986a5666c3af51ff804d05af0d4 を使用して手順を記載します。
ローカルOS用のVSCode拡張機能を準備する
作業用PCで、インストールする拡張として以下3つをダウンロードします。
- Remote - SSH
- Remote Explorer
- Remote - SSH: Editing Configuration Files
左側ペインから拡張機能を選択します。各拡張機能を検索して歯車マークから「VSIXのダウンロード」を選択することでダウンロードできます。
ダウンロードしたファイルはローカルOSに転送しておきます。
リモートOS用のVSCode Serverを準備する
コミットIDに対応したvscode_cli_alpine_x64_cli.tar.gzとvscode-server-linux-x64.tar.gzを取得します。それぞれ以下URLからダウンロードします。
ファイル名 | URL |
---|---|
vscode_cli_alpine_x64_cli.tar.gz | https://update.code.visualstudio.com/commit:2901c5ac6db8a986a5666c3af51ff804d05af0d4/cli-alpine-x64/stable |
vscode-server-linux-x64.tar.gz | https://update.code.visualstudio.com/commit:2901c5ac6db8a986a5666c3af51ff804d05af0d4/server-linux-x64/stable |
ダウンロードしたファイルはリモートOSに転送しておきます。
インストール手順
ローカルOSで拡張機能をインストールする。
事前にコピーしておいたVSIXファイルを使って拡張機能をインストールします。
左側ペインから拡張機能を選択します。画面上部の「…」をクリックしてメニューを開き「VSIXからのインストール...」を選択します。
リモートOSでVSCode Serverをインストールする
vscode_cli_alpine_x64_cli.tar.gzおよびvscode-server-linux-x64.tar.gzを展開します。
以下手順ではファイルを「~/tmp/」に転送した状態で記載しています。
# 格納用フォルダを作成
mkdir -p ~/.vscode-server/cli/servers/Stable-2901c5ac6db8a986a5666c3af51ff804d05af0d4/
# vscode_cli_alpine_x64_cli.tar.gzの展開
cd ~/.vscode-server/
tar zxvf ~/tmp/vscode_cli_alpine_x64_cli.tar.gz --no-same-owner
mv code code-2901c5ac6db8a986a5666c3af51ff804d05af0d4
# vscode-server-linux-x64.tar.gzの展開
cd ~/.vscode-server/cli/servers/Stable-2901c5ac6db8a986a5666c3af51ff804d05af0d4/
tar zxvf ~/tmp/vscode-server-linux-x64.tar.gz --no-same-owner
mv vscode-server-linux-x64 server
以上でインストール作業は終了です。RemoteSSH拡張機能を使ってローカルOSからリモートOSへの接続を試してみてください。
調査していた際残った謎(以降読む必要ないです)
lru.jsonの謎
ローカルOSもしくはリモートOSがインターネットに接続している状態でRemoteSSH拡張機能をインストールすると、~/.vscode-server/cli/servers/lru.jsonが作成されます。なくても動くため、手順からは省略しています。
lru.jsonは以下のような内容です。インストールしたVS CodeのコミットIDがリストで記載されています。
["Stable-2901c5ac6db8a986a5666c3af51ff804d05af0d4"]
RemoteSSH拡張機能のVSIXファイル内およびリモートOSで展開されるファイルのうち、lru.jsonでマッチするのはvscode_cli_alpine_x64_cli.tar.gzを展開して作成されるcodeのみでした。
codeは「ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV)」なファイルなので、これ以上の調査はできませんでした。
Discussion