在 leanvps 法蘭克福遠端 Mac 上跑 OpenClaw 時,若希望工程師從筆電操作閘道,又不想把 WebSocket 服務直接綁在對外網卡,可採 loopback-only 再加 SSH LocalForward,並用 gateway 權杖 與
openclaw doctor --non-interactive 收斂自動化與暴露面。以下為最小可復現順序與合規向注意事項;法律結論請諮詢顧問。站內延伸:OpenClaw 守護行程與出站白名單、德國節點 Git 延遲矩陣、套餐定價(公開頁)。
127.0.0.1
loopback 閘道
ssh -L
LocalForward
doctor
非互動健檢
目標與威脅模型(最小暴露面)
威脅假設是「網際網路上任意主機可掃描租戶機開放埠」。對策是讓 OpenClaw Gateway 只暴露在 本機迴環,對外僅剩你已控管的 SSH 服務;再疊一層 gateway 權杖,即使有人誤把 LocalForward 開在共享筆電,仍須持有權杖才能通過應用層驗證。德國節點提供託管與延遲語境,不取代公司資安政策、存取稽核或供應鏈規範;變更設定前仍應走變更單。
公開文件:gateway auth 與 doctor 非互動模式
下列為 OpenClaw 上游文件,寫稿時可直接對照選項語意(版本差異請以貴環境 CLI --help 為準)。
- CLI Doctor:https://docs.openclaw.ai/cli/doctor — 說明
--non-interactive會「在不出現互動提示的前提下,只套用安全的遷移」,並列舉--generate-gateway-token、--repair --non-interactive等組合;亦提醒非 TTY/加上--non-interactive時會略過需人工確認的 OAuth 重新整理流程。 - Gateway 角度 Doctor(含 gateway auth 檢查):https://docs.openclaw.ai/gateway/doctor — 同樣描述
openclaw doctor --non-interactive的邊界;在「Gateway auth checks(local token)」一節說明權杖缺失時的行為、--generate-gateway-token與 SecretRef 的關係(避免在未解析的 SecretRef 上覆寫明文)。
最小可復現步驟
- 閘道只聽 loopback:確認 Gateway 綁在
127.0.0.1(常見預設埠為18789,實際請以設定為準),避免對0.0.0.0或對外介面監聽。若必須從遠端操作,優先透過下文 SSH 轉發,而非把服務改成 remote bind。 - 設定
gateway.auth並備份:依 gateway doctor 對 local token 的敘述完成權杖來源;變更前執行cp ~/.openclaw/openclaw.json ~/.openclaw/openclaw.json.bak。社群曾回報 doctor/update 改寫設定時可能遺失gateway.auth類欄位,故合併門禁應攔「敏感區塊被刪」的 diff。 - 令牌注入(環境變數):將設定中的欄位指向
"${OPENCLAW_GATEWAY_TOKEN}"(或團隊規範之變數名),由 launchdEnvironmentVariables、秘密管理或 CI secrets 注入,避免權杖進版本庫。CLI doctor 另載明:若先前用launchctl setenv OPENCLAW_GATEWAY_TOKEN …,該值會覆蓋檔案並可能造成長期「未授權」;請以launchctl getenv/unsetenv排查。 - SSH LocalForward:在筆電執行
ssh -N -L 18789:127.0.0.1:18789 user@your-leanvps-mac(埠號對齊實際 Gateway),之後本機連線ws://127.0.0.1:18789即等同連到遠端迴環服務。可搭配ControlMaster與金鑰代理減少互動;僅允許應有權限的維運帳號使用該跳板。 - Doctor 非互動:在排程或 CI 內執行
openclaw doctor --non-interactive;若需套用文件所稱「安全遷移」範圍內的修復,再評估openclaw doctor --repair --non-interactive。避免在無人值守流程盲目加--force,以免覆寫刻意保留的 supervision 設定(見 CLI doctor 對--force的說明)。 - 合併門禁:在 PR 流水線加入
openclaw config validate(若版本提供)、靜態規則禁止OPENCLAW_GATEWAY_TOKEN=類明文入庫、以及可選的openclaw doctor --non-interactive輸出 artifact。觸及gateway.*的變更應強制附「權杖輪替/回填計畫」欄位,避免靜默削弱驗證。
合規視角(工程可敘述):把可觀測事件記在「誰建立 SSH 轉發、哪個 job 執行 doctor、設定差異摘要」,避免把完整模型對話寫進一般稽核日誌。是否滿足個資法或委外條款,仍須法遵/顧問個案認定。
常見問題
為何不直接開 remote bind?對外監聽面與掃描暴露最大;loopback + SSH 可把「誰能連到閘道」收斂到 SSH 身分與權杖兩層。
非互動 doctor 會不會略過重要修復?官方定義下它略過需人工確認的步驟;關鍵變更應在互動維運窗執行一次完整 doctor,再將結果固化進設定與門禁。
合併門禁要攔什麼?至少攔「權杖進 repo」「gateway.auth 被刪」「bind 改成非 loopback」三類高風險 diff。
結語若需一併規畫出站白名單與日誌欄位,請回到上一篇 OpenClaw 德國落地對照;首頁導覽見首頁。
OpenClaw CLI 與 schema 可能隨版本演進;請以貴環境實際輸出與內部變更流程為準。本文為工程與維運經驗彙整,不構成法律意見。