📚

インターネット接続できない環境で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