DeepSeek Harness SSH Toolkit:通過 SSH 在遠程機器上跑 DSH 會話

前言

DeepSeek Harness(DSH)默認在本地目錄上執行 shell、讀寫文件和搜索代碼。若項目只在服務器或開發機上、本機只有客戶端,常見做法是手動 SSH 進機器再操作,或把代碼同步到本地再開會話——步驟多,且 agent 用的工具鏈與本地 workspace 不一致。

下面介紹社區插件 DeepSeek Harness SSH Toolkit(npm 包名 dsh-ssh-toolkit):在 DSH 0.2 上把會話綁定到遠程主機上的任意目錄,工具名與官方一致(bash、read、write 等),調用按會話工作目錄路由到 SSH 遠端執行。維護者爲 MaiwulanjiangMaiming;倉庫見 GitHub,社區目錄頁見 SkillHub。分類爲客戶端;它是 dsh-ssh/dsh-ssh 在 DSH 0.2 上的獨立延續,並非上游提交的鏡像。

這是什麼

一句話:SSH remote workspaces for DeepSeek Harness——在遠程 Linux/macOS 上選文件夾作爲 workspace,每次 shell / 文件 / 搜索類工具調用都在該機器上完成,而不是筆記本本地。

插件是增量的:未選遠程 workspace 時,本地 workspace 行爲與未安裝前相同;卸載後 DSH 本體不受影響。

核心功能

主機與跳板

在 Settings → SSH Connections 中新增、編輯、測試(經跳板鏈)、刪除主機;可選跳板(Jump host)。UI 中密碼爲只寫不回顯。支持通過 ProxyJump 主機引用鏈式跳轉(含環檢測),或在本地執行 OpenSSH 風格的 ProxyCommand;終端側與 ssh -J / -o ProxyCommand 一致。

從現有 SSH 配置導入

掃描 ~/.ssh/config、~/.ssh/config.d/* 及 Include 鏈(與 VS Code Remote-SSH 同源),一鍵批量導入 user、port、密鑰路徑;缺少 User 的條目會標記,避免靜默錯誤。

七類路由工具

bash、read、write、edit、read_image、glob、grep 保持官方名稱與參數 schema;是否走遠程僅取決於會話 cwd,無需改 prompt 或改工具名。

遠程 workspace 與 UI

瀏覽遠程目錄並選定後,本地得到佔位 workspace;刪除 workspace 會清理佔位。Files 側欄經 SFTP 列出/預覽遠程樹;Terminal 面板用 ssh -tt 打開遠程 shell,複用官方終端的 resize/scrollback。在遠程 workspace 中附加文件會上傳到遠程目錄(重名安全命名),消息裏仍保留附件卡片。

後臺任務與沙箱

run_in_background 以及 job_list / job_output / job_kill 在遠程主機執行。三種 sandbox 模式對遠程工具調用的約束與本地一致。

連接與傳輸

未知主機密鑰首次連接會彈出指紋確認,之後校驗 known_hosts。連接池支持重連;遠程寫入原子化;SFTP 失敗時可回退到 exec + base64。

版本提示

Settings → SSH 顯示已安裝版本;若倉庫有更新 tag,頁腳提示「Update available」(至多每 6 小時檢查一次,帶 Release 鏈接)。DSH 僅對官方插件提供內置 Update 按鈕,本插件需手動拉取/重裝並完全重啓 DSH。

環境要求

項 要求
DSH 0.2.1-rc.4 – 0.2.x(README 寫明 rc.5 已測、rc.4 已審計)
Node ≥ 22
遠程系統 Linux 或 macOS(僅需 sshd,無需在遠端裝 agent)
認證 密鑰(路徑或 ssh-agent)或密碼
拓撲 多跳 via ProxyJump 或 ProxyCommand

遠程 grep 使用 GNU grep,忽略規則與本地 rg 略有差異。不支持 Windows 作爲遠程 OS。

安裝與啓用

插件隨 DSH 進程與當前 profile 運行;安裝前建議自行查看倉庫源碼與 MIT 許可證。社區目錄 SkillHub 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

桌面 profile 直接從 GitHub 安裝:

dsh plugin --profile desktop add github:MaiwulanjiangMaiming/Deepseek-harness-SSH-toolkit

無頭 Web 環境將 --profile desktop 換成 --profile web。若 pnpm 報 ERR_PNPM_ADDING_TO_ROOT,在命令末尾加 -w。安裝後完全重啓 DSH,再打開 Settings → SSH Connections。

指定 tag 或 Release 附帶的 .tgz(該頁自動生成的 Source code 壓縮包不可作爲可安裝包):

dsh plugin --profile desktop add github:MaiwulanjiangMaiming/Deepseek-harness-SSH-toolkit#v1.4.4
dsh plugin --profile desktop add ~/Downloads/dsh-ssh-toolkit-1.4.4.tgz

若 profile 拒絕覆蓋已裝副本,先移除再裝:

dsh plugin --profile desktop remove dsh-ssh-toolkit

pnpm 若因 ERR_PNPM_IGNORED_BUILDS(cpu-features、ssh2)停止,可在 profile 的 pnpm-workspace.yaml 中顯式聲明(ssh2 可不編譯可選 native addon):

allowBuilds:
  cpu-features: false
  ssh2: false

卸載:

dsh plugin --profile desktop remove dsh-ssh-toolkit

典型用法

按 README Quick start,順序如下:

  1. Settings → SSH Connections → Import from ~/.ssh/config(或 Add host)。
  2. 測試連接一次;首次連接確認主機密鑰指紋。
  3. New session → 選擇主機 → 瀏覽並選定遠程文件夾 → 該目錄成爲 workspace。
  4. 此後 agent 執行的命令與文件操作均發生在該遠程機器上。

主機記錄保存在 storage 域 dsh_ssh_hosts(文件路徑約爲 ~/.dsh/storages/dsh_ssh_hosts.json)。設置頁通過 Typert 遠程 RPC(如 ssh/listHosts、saveHost、testConnection、scanSshConfig 等)與 host 通信,不把 settings 命名空間暴露到 wire。

適用場景與注意

適合:代碼與構建環境在遠程 Linux/macOS;已用 OpenSSH config 管理多臺主機或跳板;希望在 DSH 0.2 裏用與本地相同的工具名做遠程開發。

務必知曉的限制與 trade-off(來自 README Notes):

  • 密碼以明文寫入 dsh_ssh_hosts.json(與上游相同取捨);更推薦密鑰,私鑰文件本身不會被複制。
  • 終端跳板鏈走本地 ssh -J,中間跳 credentials 來自系統 ssh config/agent;存儲的密碼僅用於目標主機。
  • ProxyCommand 在本地 /bin/sh 執行配置中的命令,信任模型同 OpenSSH;僅對你已配置的主機會執行。
  • Files 標題仍顯示本地佔位路徑,實際讀寫指向遠程路徑;終端使用本機 ssh 客戶端。
  • 上傳寫入遠程 workspace;附件卡片仍引用本地暫存副本供模型側展示。

連接測試失敗時,README 建議先覈對 host、port、user(後續 Troubleshooting 章節在抓取資料中已截斷,細節以倉庫 README 爲準)。

結尾

DeepSeek Harness SSH Toolkit 把 DSH 0.2 會話落到 SSH 遠程目錄:導入現有 ~/.ssh/config、管理跳板、七類官方工具遠程路由,以及 Files/Terminal 的遠程 parity。本地 workspace 不受影響,按需安裝即可。

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

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

小夜