2026年 OpenClaw Node(VS Code 拡張)× 独占リモート Mac:インストール、ワークスペーススキル、ゲートウェイと ACP 連携、SSH ポート転送トリアージの再現手順+FAQ
VS Code 上の OpenClaw Node を、すでにゲートウェイが動いている独占リモート Macに載せ替えるところから、拡張機能ホストの確認、ワークスペーススキルの解決、ACP(Agent Client Protocol)経路、そして「サーバでは動くのに IDE だけ死ぬ」系を潰す SSH ポート転送の対照表までを runbook 化します。最小ブートストラップは 2026年、リモートMac miniでOpenClawを10分で起動(SSH + 最小依存関係) から先に済ませてください。トンネル設計の別視点は 2026年 OpenClaw 架构优化:如何在远程 Mac mini 上通过 SSH 隧道实现跨节点的 AI 任务负载均衡? も参照できます。
1. ゴール・前提・ここでいう「再現可能」
最終状態:VS Code(または互換エディタ)に OpenClaw Node 拡張が入り、リモート Mac 上の拡張機能ホストで動作し(通常は Remote-SSH でフォルダをリモート再オープン)、Node からスキルが見え、ゲートウェイはループバック上の固定ポートに届き、トンネルとバインド先が明示されているので ACP セッションが再起動後も追跡しやすい、という形です。
前提:ssh user@mac-host を自動化で非対話にできること、Mac はチーム内でシングルテナントに近い運用であること、ゲートウェイ本体はベンダ手順どおり導入済みであること。まだゲートウェイが無い場合は上記 10 分手順のあと本稿に戻ってください。
2. OpenClaw Node のインストールと拡張機能ホストの確認
- ノート PC 側の VS Code マーケットプレイスから OpenClaw Node をインストールします。
- Remote - SSH 等で接続し、フォルダをリモートで開き直すことで、拡張機能ホストが Mac 上で動くようにします。ローカル常駐のままでは macOS のパスや launchd 管理のデーモンが見えません。
- 出力パネルで OpenClaw Node チャンネルを選び、ログに Darwin ビルドとゲートウェイ設定所有者と同じユーザーが出ることを確認します。
- 初回インストール後はウィンドウを一度リロードし、シェルプロファイルで変えた PATH を拡張機能ホストが拾えるようにします。
マーケットプレイスがブロックされる場合は、リモートに SSH して code --install-extension openclaw-node-*.vsix で .vsix をサイドロードし、ファイル名は社内アーティファクト保管庫で版管理します。
3. ワークスペース構成とスキル解決
スキルはグローバル魔法ではなく、ワークスペースのルートから解決されます。可能なら単一リポジトリルートに寄せ、マルチルートにすると同一 skill ID が静かにシャドウします。
- 共有スキルは Node が開くリポジトリ直下の
.openclaw/skills/<skill-id>/SKILL.mdに置きます。 - リモートユーザーが読めること(
ls -l)、git 同期に依存するなら広すぎる.gitignoreで落ちていないことを確認します。 - 編集後はコマンドパレットのスキル再読込(文言は版により異なる)かウィンドウ再読込を行い、Output のパースエラーを見ます。
複数ルートで優先がぶつかる場合の表は 2026年 OpenClaw Skills の優先順位とマルチワークスペース衝突:独占リモート Mac(SSH)で「スキルが効かない/二重定義」の再現対照表+FAQ と同じルールが、Node をリモート常駐にしたあともそのまま当てはまります。
4. Node からゲートウェイへ(ループバック・トークン・TLS)
ゲートウェイは Mac 上で 127.0.0.1 バインドを基本とし、LAN 公開は別のハードニング案件として切り離します。Node 設定(リモートスコープ)では次を揃えます。
- ベース URL を
http://127.0.0.1:<port>(ローカル終端 TLS なら https)に固定する。 - 長寿命トークンは Secret Storage に入れ、共有の
settings.jsonに平文コミットしない。 - SSH シェルから先に
curl --noproxy '*'でヘルスを叩く。curl が落ちる理由は Node でも同じです。
node サブコマンドが既定ブロックされるポリシーでは、承認 UI と監査ログの対応を
2026年 OpenClaw ノードペアリング(Node Pairing)新ルール後:`node` 既定ブロック、承認フローと独占リモート Mac ゲートウェイの SSH 再現対照表+FAQ
に合わせて運用側が説明できるようにしておきます。
5. ACP(Agent Client Protocol)連携の受入チェックリスト
ACP はエディタ向け制御面です。Node が VS Code の操作を ACP メッセージに変換し、ゲートウェイがツール/チャットのストリームで応答します。ローカルホスト間のサービス対として扱います。
- ゲートウェイ側ポリシーと Node 設定の両方で ACP を有効化する。プロトコル版の不一致は即
protocol versionエラーになるので、片側だけ先に上げない。 - WebSocket や HTTP/2 のアイドルタイムアウトは最長ツール実行より大きくする。数時間超のジョブは 2026年 OpenClaw v2026.4.15 深掘り実践:macOS Tahoe のタスクハング、Gateway 認証失敗、48時間ロングジョブ持久化の安定稼働——再現チェックリスト+FAQ のソーク指針とすり合わせる。
- 企業プロキシで
127.0.0.1を迂回させない。プロキシは WebSocket アップグレードを落とし、ACP が「不安定」に見えがちです。
6. 現場で残る SSH ポート転送レシピ
オペレータがノートから作業しゲートウェイはリモート Mac に置くとき、Wi-Fi 切断で死ぬ単発の ssh -L より、設定ファイルに明示します。
LocalForward(典型): リモートの 127.0.0.1:18789 をノートの 127.0.0.1:18789 に載せ替える例です。
Host mac-build-01
HostName <ip-or-dns>
User <user>
LocalForward 18789 127.0.0.1:18789
ServerAliveInterval 30
ServerAliveCountMax 4
ExitOnForwardFailure yes
症状対照表
| 症状 | 想定原因 | 対処 |
|---|---|---|
channel_forward bind failed |
ノート側ポートが既占有 | ローカル高位ポートを変え、Node のベース URL も合わせる。 |
| Mac 上の curl は通るがトンネルがハング | ゲートウェイが LAN IP のみバインド | 127.0.0.1 に戻すか、転送先 IP を実バインドに合わせる。 |
| ランダム切断 | NAT のアイドルタイムアウト | ServerAliveInterval を詰める。ControlMaster 多重化も有効。 |
| Node からだけ HTTP 401 | シークレットのスコープがローカル/リモートで食い違い | Remote 設定でトークンを入れ直し、古いグローバルスコープを消す。 |
7. FAQ
Q: Mac の CLI ではスキルが見えるのに Node では見えない。
A: VS Code ウィンドウがリモートホスト上で動いているか、ワークスペースルートに .openclaw/skills があるか、git pull 後にウィンドウ再読込したかを確認してください。
Q: ACP は繋がるがツール途中で落ちる。
A: ゲートウェイのツールタイムアウトと SSH キープアライブを揃え、OOM やポリシキルがログに無いか見ます。
Q: 1 セッションで複数ポートを転送したい。
A: 可能です。LocalForward を複数行積み、社内 runbook にペアを書き残してください。
エディタ中心の Node+ゲートウェイなら、足元は Mac mini に寄せやすい
VS Code Remote、ゲートウェイ、ときどきローカル推論を同一筐体に載せる構成は、Apple Silicon のユニファイドメモリ帯域と macOS の安定性が効きます。launchd による常駐再起動の語りやすさ、OpenSSH の扱いやすさ、Gatekeeper と SIP による無人時のマルウェア面の縮小は、汎用 Windows イメージと比較して説明しやすい利点です。ACP や Webhook で常時オンにするほど、待機電力と静音性が運用コストに直結し、Mac mini M4 クラスはアイドルで数ワット程度に抑えやすいのが 2026 年でも変わりません。
監査しやすく熱設計が地味で、24/7 でも置きやすいハードが欲しい場合は、Mac mini M4 が依然としてバランスの取れた出発点です。構成の比較から始めるなら SSHMac のトップページでプランを確認し、本チェックリストをチーム全員で同じ形に展開してください。