dsh-ssh-bridge: 本地 SSH 橋接插件

前言

在使用 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. 瀏覽器交互

  1. 打開 http://127.0.0.1:23991。
  2. 輸入目標主機(格式 user@host[:port])與密碼,點擊「連接」。
  3. 狀態變爲「已連接」後,下方輸入框即爲目標主機的交互終端。
  4. 輸入 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。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜