VS Code

【VS Code】Internetの無い環境でRemote Development機能を使用する方法

2020/4/2追記)
最近のバージョンのVS Codeの場合は、server側にインターネットアクセスがないと自動的にclient側からvscode-serverがアップロードされます。
なので、client側がネットにつながる場合は以下の手順は不要になりました。

2020/5/14追記)
client側もネットに繋がらない場合には、依然として有効なので、client側がネットに繋がらない場合がメインになるように修正しています。

記事内容が古いことに気づけたのはコメントのおかげです。
コメントをしてくださった皆様、本当にありがとうございます。


↓ここから本文です↓

VS CodeのRemote機能を使って開発を行いたいけど、サーバがオフライン環境(社内ネットワークからはアクセスできる)にあり、vscode-serverを導入できない、ということは割とあるのではないでしょうか?

そんな環境でもVS Codeでリモート開発を行いたいという貴方に朗報です。

以下の方法でオフライン環境のサーバにvscode-serverを導入可能です!

1.PCにVS Codeをインストール

これは普通にVS Codeの公式サイトから最新版をインストールしてください。
https://code.visualstudio.com/

2.vscode-serverをダウンロード

まず、1.でインストールしたVS CodeのコミットIDを調べます。
VS Codeの[ヘルプ(H)]->[バージョン情報]から確認することができます。

次に、PowerShell等を開き、以下のコマンドを実行します。
※”コミットID”の部分に上で調べたコミットIDを入れてください。

wget -O vscode-server-linux-x64.tar.gz https://update.code.visualstudio.com/commit:コミットID/server-linux-x64/stable

これで、wgetコマンドを実行したフォルダ内にvscode-server-linux-x64.tar.gzというファイルが出来上がっているはずです。

3.Remote Developmentの拡張機能をインストール

VS Codeを立ち上げ、拡張機能のタブを開きます。

検索窓に”Remote Development”と入力すると、該当する拡張機能が表示されるはずなので、その拡張機能をインストールします。

4.インストールした拡張機能を一部修正

Remote Developmentはインストールの初期状態だと、オフライン環境では使用できません。

オフライン環境でも使用できるように、以下のファイルを変更する必要があります。

(client端末がWindowsの場合)
C:\"VS Codeのパス"\.vscode\extensions\ms-vscode-remote.remote-ssh-"バージョン番号"\out\extension.js
※VS Codeのパスは1.でインストールした時のパス。ユーザ毎にインストールした場合は恐らくC:\Users\”ユーザ名”\.vscode
※ remote-sshのフォルダが複数ある場合は、”バージョン番号”は一番新しいものを選択

(client端末がMacの場合)
/Users/"ユーザ名"/.vscode/extensions/ms-vscode-remote.remote-ssh-"バージョン番号"/out/extension.js

変更内容は↓の1文を置換するだけです。

<ダウンロードしたファイル>には2.でダウンロードしたファイルのフルパスを指定してください。

メモ帳とかで編集すると死ねるのでVS Codeで編集しましょう。


※ここまでをインターネットが繋がる環境で準備してから、オフライン環境へと向かい、以下のログイン作業を行ってください。

5.VS Codeからサーバへアクセス

あとは通常通りVS Codeのremote機能を使って、vscode-serverを配置したサーバにログインするだけです!

参考

Use VS Code Remote Development w/o marketplace, update connectivity · Issue #15 · microsoft/vscode-remote-release
Is there anyway to get around this limitation "VS Code Server requires outbound HTTPS (port 443) connectivity to update....

コメント

  1. このページは助かりました。
    ありがとうございます。

    最近、retmote-sshの新しいのを入れたらうまく行かなかったので調べてみました。
    remote-ssh 0.50 では置換する部分の記述が変わったようです。
    下のように変更したらうまく行きました。

    ■ extension.js
    ・変更前
    wget ${function (e) { return e ? “–tries=1” : “” }(!!m)} –connect-timeout=7 –dns-timeout=7 -nv -O vscode-server.tar.gz $DOWNLOAD_URL
    ・変更後
    cp /tmp/vscode-server.tar.gz vscode-server.tar.gz

    以上、情報提供でした。

    • 最近(1.3x?~)はclient側のVS Codeから勝手にserver側にvscode-serverを置いてくれるのでこの作業をしていませんでした・・・

      この点も併せて内容は修正しておきます。

      情報提供ありがとうございました!

  2. 私も助かったうちの一人です。
    ありがとうございます。

    細かいことですが、以下の記述のほうが良いかもしれません。
    ・変更後
    cp /tmp/vscode-server-linux-x64.tar.gz vscode-server.tar.gz

    • ご指摘ありがとうございます。

      上の章と整合性が取れておらず、分かりにくくなっていました…
      すいません…

      整合性が取れるように修正しました。

タイトルとURLをコピーしました