その他について詳しく解説します
- Mac から VS Code Remote-SSH で お名前.com RS(共用)へ接続して開発できる?
- SSH/SFTP は問題なさそうだが、VS Code Server は動くの? glibc は足りる?
- もし Remote-SSH が難しいなら、現実的な代替運用や移行先は?
この記事では、以上の疑問にお答えします。
目次
この記事のポイント!
- 結論:SSH/SFTP は可。ただし Remote-SSH は実用不可。
- 理由:VS Code Server の glibc 要件未満、旧版でも 最終段フォワーディングが毎回切断。
- 代替:① SFTP 同期+端末 SSH/② glibc ≥ 2.28 の VPS/EC2 へ移行。
【前提】検証の目的と背景
Mac(Apple Silicon)から VS Code の Remote-SSH で お名前.com RS(共用)へ接続し、日常開発に耐えうるかを検証しました。
RS は CloudLinux/CentOS7 相当・kernel 3.10 系で、glibc を含むユーザーランドが古めです。
共用につき 任意ポート待受・常駐デーモンは原則非推奨です。
【環境】クライアント・サーバ構成
- クライアント:macOS(Apple Silicon)
- VS Code:1.100.2(最新系)、1.85.2(やや古め)
- Remote-SSH 拡張:0.107.1
- サーバ:お名前.com RS(CloudLinux/CentOS7 相当, kernel 3.10 系)
- 認証:鍵認証(ed25519 or pem)、Port 8022
- 本記事のサンプルでは
[HOST]
/[USER]
/[KEYFILE]
/[ALIAS]
をトークン表記(実値に置換してご利用ください)。
【結論】要約
- SSH/SFTP は問題なく利用可能。
- Remote-SSH は不可。最新系は glibc 要件未満で起動不能。旧版は フォワーディングで切断。
- 代替:SFTP 同期+端末 SSH/または VPS/EC2 へ移行。
【手順と結果】時系列の検証
1) 鍵の用意と SSH 接続の確認
chmod 600 ~/.ssh/[KEYFILE].pem
Host [ALIAS] HostName [HOST].onamae.ne.jp User [USER] Port 8022 IdentityFile ~/.ssh/[KEYFILE].pem IdentitiesOnly yes AddKeysToAgent yes UseKeychain yes
ssh [ALIAS] [[USER]@[HOST] ~]$ ls -la
2) VS Code 1.100.2(最新系):glibc 不足で失敗
/home/[USER]/.vscode-server/bin/848b80.../node: /lib64/libm.so.6: version `GLIBC_2.27' not found /home/[USER]/.vscode-server/bin/848b80.../node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found /home/[USER]/.vscode-server/bin/848b80.../node: /lib64/libc.so.6: version `GLIBC_2.28' not found
VS Code Server(Node 20 系)起動不可。
3) VS Code 1.85.2(やや古め):起動はするがフォワーディングで失敗
Error: listen EACCES: permission denied /run/user/[USER]/vscode-ssh-remote-server-sock-xxxxx
{ "remote.SSH.remoteServerListenOnSocket": false }
Server bound to 127.0.0.1:45000 (IPv4) Extension host agent listening on 45000
Remote server is listening on port 45000 Starting forwarding server... [Forwarding server port xxxxx] Got connection 0 [Forwarding server port xxxxx] Got connection 1 Failed to set up socket for dynamic port forward to remote port 45000: Socket closed.
{ "remote.SSH.enableDynamicForwarding": false, "remote.SSH.serverPickPortsFromRange": { "[ALIAS]": "45000-45150" } }
いずれも改善せず、実用不可と判断しました。
4) 参考:SOCKS 単体テスト
ssh -vv -N -D 1080 [ALIAS]
SOCKS は待受開始を確認できましたが、Remote-SSH の最終接続は毎回 Socket closed
で失敗しました。
【比較表】RS(共用)と VPS/EC2 の違い
項目 | お名前.com RS(共用) | VPS/EC2(専有) |
---|---|---|
glibc など | 古めで要件未満になりやすい | 新しめを選べる |
kernel | 3.10 系 | 4.18 以上が一般的 |
常駐プロセス | 非推奨・非保証 | 自己責任で可 |
任意ポート待受 | 制限多め | 柔軟に設定可 |
速度・安定 | 他ユーザーの影響 | 安定しやすい |
権限 | 制約多い | root 可 |
コスト | 安価 | やや高め |
Remote-SSH | 不可(本検証) | 可(要件満たせば) |
向き | Web/メール+軽いバッチ | 開発・常駐系 |
【代替運用】RS を使い続ける場合
A) VS Code はローカル、SFTP 同期(推奨)
VS Code の SFTP 拡張を使い、保存時に自動アップロードします。
実行系の操作は SSH ターミナルで行います。
{ "name": "[ALIAS]", "protocol": "sftp", "host": "[HOST].onamae.ne.jp", "port": 8022, "username": "[USER]", "privateKeyPath": "~/.ssh/[KEYFILE].pem", "remotePath": "/home/[USER]", "uploadOnSave": true, "ignore": ["**/.git/**", "**/__pycache__/**", "**/.vscode/**"] }
B) VPS/EC2 に移行して Remote-SSH
glibc ≥ 2.28 / kernel ≥ 4.18 を満たす OS(例:Ubuntu 22.04 / Debian 12)を選択します。
必要に応じて sshd のフォワーディング許可も確認します。
AllowTcpForwarding yes AllowStreamLocalForwarding yes
【運用のコツ・つまずき】
鍵と権限の基本
秘密鍵は chmod 600
を徹底し、ssh-agent
と UseKeychain
を併用して利便性を確保します。
UNIXソケットよりTCPに切替
共用では UNIX ソケット権限で落ちやすいため、Remote-SSH はソケット待受を無効化し TCP へ切替えます。
{ "remote.SSH.remoteServerListenOnSocket": false }
ポート帯域は固定指定でも過信しない
レンジ指定でもダイナミックフォワーディングが切断される場合があります。深追いせず SFTP+端末 SSH に切替えます。
共用環境の作法を守る
任意ポート常時待受や常駐デーモン(VS Code Server 等)は原則非推奨・非保証です。
SFTP 同期時のバックアップと除外
自動同期は別フォルダ出力を基本にし、Git を併用して巻き戻し可能性を確保します。大容量・不要ディレクトリは除外してください。
"ignore": ["**/.git/**", "**/__pycache__/**", "**/.vscode/**", "**/node_modules/**", "**/dist/**"]
【FAQ】よくある質問
glibc をユーザー権限で差し替えれば動きますか?
依存が広く、共用では現実的ではありません。専有環境(VPS/EC2)で OS ごと要件を満たすのが推奨です。
古い VS Code ならいけますか?
旧版は起動しても、最終フォワーディングが毎回切断(Socket closed
)。実用に至りませんでした。
設定で回避できませんか?
以下の設定は効果が限定的で、根本解決には至りませんでした。
{ "remote.SSH.remoteServerListenOnSocket": false, "remote.SSH.enableDynamicForwarding": false, "remote.SSH.serverPickPortsFromRange": { "[ALIAS]": "45000-45150" } }
どうしても Remote-SSH を使いたいのですが?
glibc ≥ 2.28 / kernel ≥ 4.18 の OS(例:Ubuntu 22.04 / Debian 12)を持つ VPS/EC2 へ移行し、sshd のフォワーディング許可も確認してください。
AllowTcpForwarding yes AllowStreamLocalForwarding yes
SFTP 同期の負荷やラグはどの程度ですか?
uploadOnSave
と ignore
の調整で大きく改善します。巨大ディレクトリは対象外にし、差分アップロード設定を活用してください。
Code Server(ブラウザ版)なら実現できますか?
常時待受・常駐が必要のため、共用では非推奨・非保証に抵触する可能性が高いです。
まとめ
- SSH/SFTP は OK、Remote-SSH は NG。
- 理由:glibc 要件未満+最終段フォワーディング不成立。
- 現実解:SFTP 同期+端末 SSHに切替、または VPS/EC2 へ移行。
- RS は Web/メール+軽いバッチに留め、開発の主戦場は専有環境へ。
本記事のコードは [HOST]
/[USER]
/[KEYFILE]
/[ALIAS]
を実環境の値に置換してご利用ください。