Introduction
CentOS 7 というサポート切れして久しい OS に対して最新の Visual Studio Code から接続した際、
1 | The following issues were detected in your most recent Remote - SSH session |
のようなエラーが表示され接続できなっていたことに今更気づく。
Remote - SSH のコンソールを除くと下記のようなメッセージも出力されている。
1 | [11:40:30.511] ---------- [Session Summary] ----------- |
1 | > [2025-11-09 14:06:28] error This machine does not meet Visual Studio Code Server |
その対策。
How to resolve?
調べてみると、Visual Studio Code の v1.99 以降でこうした事象が発生すると。
Remote host / container / WSL Linux prerequisites
| Distribution | Base Requirements | Remote - SSH Requirements | Notes |
|---|---|---|---|
| General | kernel >= 4.18, glibc >=2.28, libstdc++ >= 3.4.25, tar | OpenSSH server, bash, and curl or wget | Run ldd –version to check the glibc version. Run strings /usr/lib64/libstdc++.so.6 |
| General for Arm32 | libatomic1 | No additional requirements. | |
| Ubuntu 20.04+, Debian 10+, Raspberry Pi OS Buster/10+ and downstream distributions | libc6 libstdc++6 ca-certificates tar | openssh-server bash and curl or wget | Requires kernel >= 4.18, glibc >= 2.28, libstdc++ >= 3.4.25. |
| RHEL / CentOS 8+ | glibc libgcc libstdc++ ca-certificates tar | openssh-server bash and curl or wget | Requires kernel >= 4.18, glibc >= 2.28, libstdc++ >= 3.4.25. |
| Alpine Linux 3.16+ | musl libgcc libstdc++. musl >= 1.2.3, glibc not required. | Not yet supported. | Supported in Dev Containers and WSL. Extensions installed in the container may not work due to glibc dependencies in extension native code. |
| openSUSE Leap / SUSE Linux Enterprise 15+ | glibc libgcc_s1 libstdc++6 ca-certificates gzip tar | curl or wget | Requires kernel >= 4.18, glibc, libstdc++6 |
要するに glibc か libstdc++ または kernel が古い、ということ。
これらを全て解決できればいいが、どれもアップデートは難しいし、特に、システム全体が依存している glibc のアップデートはお勧めできない。
ということで、公式 Can I run VS Code Server on older Linux distributions? にあるように、
- sysroot を docker コンテナ内で生成
- 接続先の所定のディレクトリに配置
という対策が紹介されている。
しかし、やることが多いのと、手順があまりにも省略してあり、成功するまでに時間を浪費したのでメモ。
1. kernel の更新
CentOS 7 のインストール直後のカーネルは、下記のように古い。
1 | $ uname -r |
先述のカーネルの必須要件は 4.18 なので、更新する必要がある。
更新手順は 開発メモ その465 古い Linux (CentOS 7) のカーネルを更新する を参照。
2. sysroot の作成
Dockerfile を公開している有志がいるのでそれを参考にする。
docker build の際、先の Microsoft の公式説明のページもあった、設定ファイルが必要なので、接続先 Linux の CPU アーキテクチャに合わせてそちらも準備する。
例えば、カレントディレクトリから見て、 vscode-server-sysroot\ubuntu\Dockerfile、vscode-server-sysroot\ubuntu\x86_64-gcc-8.5.0-glibc-2.28 が存在するならビルドは下記のように行う。
Windows
1 | $ mkdir output |
Linux
1 | $ mkdir -p output |
かなり時間がかかるので注意。
ビルドに成功すると output に vscode-sysroot-x86_64-linux-gnu.tgz が生成される。
2. リモート先に転送
vscode-sysroot-x86_64-linux-gnu.tgz を接続先の Linux に転送する。
1 | $ scp output\vscode-sysroot-x86_64-linux-gnu.tgz user@192.168.11.117:~ |
3. リモート先での設定
転送した vscode-sysroot-x86_64-linux-gnu.tgz を所定のディレクトリに展開
1 | $ mkdir -p ~/.vscode-server/sysroot |
4. 環境変数の設定
Visual Studio Code Server が起動時に読み込む環境変数を設定。
1 | $ touch ~/.vscode-server/sysroot.sh |
特に再起動は不要。
5. Visual Studio Code から再接続
接続元のマシンから再度 Remote-SSH で接続を行うと Visual Studio Code Server のダウンロードが実施され、下記のダイアログが表示される。
許可すれば、従来通り開発が可能になる。
ちなみに Ubuntu 18.04 も同様の事象に陥るが、上の手順を実施してもダメだった。

