前言¶
在使用 DeepSeek Harness (DSH) 進行智能體開發時,執行遠程 SSH 命令通常需要預設主機配置或暴露登錄憑據。dsh-ssh-bridge 插件提供了一個本地橋接方案:通過瀏覽器界面輸入目標主機與密碼,建立加密通道;Agent 則通過本機的 localhost API 執行遠端命令。該插件不依賴特定 SSH 目標,支持獨立運行,密碼全程僅存在於進程內存中。
核心功能¶
- 本地 SSH 橋接服務
- 瀏覽器頁面輸入密碼建立連接
- Agent 通過
router_exec等工具調用遠端命令 - 支持任意 SSH 目標(無需預設主機)
- 獨立於 DSH 可獨立運行
- 端口自動順延
- 隨機 token 認證
部署與啓用¶
安裝插件¶
通過 DSH 插件命令安裝:
dsh plugin --profile web add dsh-ssh-bridge
依賴與環境¶
- DSH 版本:需 DSH 0.1.0-rc 系列
- Node.js:≥ 18
- pnpm:依賴安裝工具(由
dsh plugin轉發)
pnpm 11 兼容性說明¶
若使用 pnpm 11,默認會攔截 ssh2 和 cpu-features 的原生構建腳本(node-gyp),導致安裝失敗。需在對應 profile 的 pnpm-workspace.yaml 中放行:
allowBuilds:
cpu-features: true
ssh2: true
獨立運行(可選)¶
橋接核心不依賴 DSH,可直接運行:
npm install
npm start
啓動後訪問 http://127.0.0.1:23991(端口被佔用時自動順延)。
典型用法¶
1. 瀏覽器交互¶
- 打開
http://127.0.0.1:23991。 - 輸入目標主機(格式
user@host[:port])與密碼,點擊「連接」。 - 狀態變爲「已連接」後,下方輸入框即爲目標主機的交互終端。
- 輸入
exit可結束整個 SSH 會話,或點擊「斷開連接」按鈕。
2. API 調用¶
服務啓動時會生成隨機 token。Agent 可通過以下接口與橋接服務通信:
- 認證:
POST /api/auth(參數:{password, target?}) - 執行命令:
POST /api/exec(參數:{cmd, token},返回{code, stdout, stderr}) - 寫入終端行:
POST /api/input(參數:{line, token}) - 斷開連接:
POST /api/disconnect(參數:{token}) - 重連:
POST /api/reconnect(參數:{token})
3. DSH 工具調用¶
插件加載後,Agent 可在 scoped 層直接調用以下工具:
* router_exec:執行遠端命令
* router_disconnect:斷開連接
* router_reconnect:複用憑據重新連接
注意事項¶
- 安全限制:服務僅監聽
127.0.0.1,外部網絡無法訪問。 - 憑據安全:密碼僅存於進程內存,不打印、不落盤。
- Token 限制:調用 API 需攜帶啓動日誌中的 token,token 僅限本機有效。
- 端口衝突:端口被佔用時自動順延,具體端口以啓動日誌爲準。
總結¶
dsh-ssh-bridge 解決了在 DSH 環境下安全調用遠程 SSH 的痛點,通過瀏覽器認證和本地 API 調用,實現了無預設主機的通用 SSH 訪問能力。代碼託管在 GitHub,許可證爲 MIT。