概要
Visual Studio Code (以下VSCode)は FreeBSDをサポートしていませんが、FreeBSDのLinuxバイナリ互換機能で、VSCodeのサーバーを実行することができます。
この記事ではVSCodeサーバを起動しクライアントから使用する方法を2つ紹介します。
- SSHでの接続
- ssh で接続する方法です。クライアントとサーバーが同じネットワークの時におすすめです
- リモートトンネルでの接続
- 比較的簡単ですが、GithubかMicrosoftアカウントが必要です。インターネット経由での接続になります。
以下のバージョンで動作確認しました。
サーバー側: FreeBSD 14.2
クライアント側: VSCode 1.98.2 (Windows / Linux)
SSHでの接続方法
クライアントからSSHで接続します。VSCodeのサーバー側は自動的にダウンロードされます。FreeBSDサーバーではsshdが動作している必要があります。
SSH接続:FreeBSDサーバーの設定
Linux互換機能(Linuxulator)を有効化し、Rocky Linux 9 互換のパッケージを導入します。
root権限で行ってください。
pkg install linux-rl9-libsigsegv
service linux enable
service linux start
Windows版VSCodeを使用する場合、VSCodeを使いたいユーザーにて、.cshrcの最後に下記を追加します。非インタラクティブモードの時にshはLinux互換モードで実行されるようにします。
~/.cshrc
if (! $?prompt) then
alias sh /compat/linux/usr/bin/sh
endif
ログインシェルがcshを前提としています。場合によっては既存のスクリプトに影響あるかもしれません
SSH接続:クライアント側VSCodeでの操作
.ssh/configにFreeBSDサーバーの情報を追加します。別途秘密鍵、authorized_keyを設定してパスワード不要にすることもできます。
Windows: %USERPROFILE%/.ssh/config
Linux: $HOME/.ssh/config
HOST [構成名]
user [ユーザー名]
hostname [サーバー名]
RemoteCommand /compat/linux/usr/bin/bash
VSCodeで Remote-SSH 拡張機能をインストールします。
Ctrl+Shift+Pを押し「Remote-SSH: Settings」を選択します。
Remote.SSH: Enable Remote Command にチェックを入れます。
左下の [><] アイコンをクリックし、[ホストに接続する...]を選択します。
.ssh/configの内容から接続先が表示されます。FreeBSDサーバーを選択します。
(Windowsの場合)接続先のOSを聞かれるので、[Linux]を選択します。
(Windowsの場合)detailsをクリックして、パスワードを入力します。
接続が完了すると、左下に[SSH: サーバー名]と表示されます。
次回以降、コマンドプロンプトから下記コマンドで接続し特定のフォルダを開くようにできます。
server1 のところは、.ssh/configに設定した構成名に変更します。
code --remote ssh-remote+server1 /home/test1
リモートトンネルでの接続
Microsoftの開発トンネル機能を使用するものです。
リモートトンネル:FreeBSD側の設定
Linux互換機能(Linuxulator)を有効化し、Rocky Linux 9 互換のパッケージを導入します。
root権限で行ってください。
pkg install linux-rl9-libsigsegv
service linux enable
service linux start
VSCodeを使用したいユーザーでVSCodeのLinux CLI をダウンロードし、code tunnel を起動します。
curl -LOJ https://update.code.visualstudio.com/latest/cli-linux-x64/stable
tar zxvf vscode-cli-linux-x64-stable.tgz
./code tunnel
初回実行時はGithubかMicrosftアカウントの認証が必要です。ここではGithubでの例を説明します。
どちらのアカウントを使用するか聞かれますので、カーソルキーでGithubを選択しEnterを押します。
ブラウザで https://github.com/login/device/ を開き、Githubアカウントでのログインをしたあと赤枠部分のコードを入力します。VSCodeから接続を承認するかということをきかれますので承認操作をします。
承認操作をすると、サーバー名を入力するように求められます。変更なければそのままEnterで問題ありません。このサーバー名をクライアントから接続するときに使用します。
表示されるURLにアクセスすることでブラウザから利用もできます。
リモートトンネル:クライアント側の操作
VSCodeを起動し、左下の[><]をクリックし、tunnelを選択します。自動的に拡張機能がインストールされます。
サーバー認証に使用したアカウントを選択します。今回はGithubを選択します。Githubへログインしていなければログイン画面が表示されます。
接続できるサーバーが表示されますので、先ほどのサーバー名を選択します。
しばらくすると接続が完了します。左下にサーバー名が表示されます。
補足
- 現時点で、Windows版VSCodeでは、EnableRemoteCommand設定が効かないようです。今後のバージョンで動作が変更されるかもしれません
参考リンク
下記リンク先の情報をもとに、自身で確認して記事を作成しました。クライアントがMacOSの場合は確認していません。