前言¶
用 DeepSeek Harness(DSH)做開發時,常見做法是本機起一個 dsh 進程,agent 和工具調用都在當前環境裏跑。代碼在遠端 Linux、WSL 或容器裏時,要麼在 SSH 裏手動敲命令,要麼把倉庫同步到本機再開工作區——和「聊天裏直接讓 agent 改遠端目錄」的體驗不一致。
dsh-ssh(包名 dsh-ssh-remote)由維護者 longguanhong0755 發佈,分類爲客戶端插件。它在遠程主機上部署並監管常駐的 dsh 運行時,把遠程目錄投影到 DSH 原生側欄;本機負責選目錄、聊天和看狀態,關掉本地 dsh 後,遠程 agent 與正在生成的回答仍可繼續。README 寫明適用版本爲 DeepSeek Harness Desktop 0.2.1-rc.5,並已在 AlmaLinux 9.5 的 SSH 主機上做過端到端驗證。
這是什麼¶
一句話:給 DSH 加上與 ZCode 相近的遠程工作區能力,覆蓋 SSH(密碼 / 私鑰 / agent)、Windows 上的 WSL 發行版、Docker 容器三類目標。
社區目錄頁:https://www.skillhub.cn/plugins/longguanhong0755/dsh-ssh(與 GitHub 倉庫相互獨立,並非 DeepSeek / 幻方官方應用商店)。源碼倉庫:https://github.com/longguanhong0755/dsh-ssh,許可證 MIT;package.json 中版本爲 0.3.1,要求 Node ≥ 22。安裝與使用前,建議自行查閱源碼與許可證,並牢記插件隨當前 dsh 進程權限運行。
核心功能¶
下面按 README 已列能力歸納,不超出文檔表述。
設備與連接
- 新建連接嚮導與 ZCode 一致,支持從
~/.ssh/config導入;SSH / WSL / Docker 統一入口(macOS 上不出現 WSL 入口)。 - 遠程設備列表:狀態、
root@host:22形式地址、最近在線時間、項目數;可搜索設備名、地址或項目。 - 設備行菜單:編輯、斷開、重裝 / 重啓 / 停止遠端服務、移除設備;「斷開」僅斷本機連接,遠程任務照常。
項目與工作區
- 創建項目:項目名 + 設備 + 文件夾;本機用系統對話框選路徑,遠程用內嵌 SFTP 文件夾瀏覽器(可輸入路徑、顯示隱藏目錄、逐級進入)。
- 遠程工作區出現在 DSH 原生側欄:雲朵(在線 / 啓動中 / 離線 / 異常)+ 項目名 + 設備名;
...菜單支持新建任務、查看文件、編輯項目、置頂、刪除。刪除只清本機投影和遠端服務,遠程項目文件夾保留。
會話與部署
- 回答在遠端生成、本地流式顯示;支持思考、工具調用、取消;agent 進程、工具調用和文件讀寫發生在遠程主機。
- 狀態包括:運行中 / 啓動中 / 已停止 / 異常 / 不可達,以及 PID、運行時長、內存、CPU、HTTP 狀態。
- 首次連接會在遠端自動安裝 Node 與 dsh、同步模型憑證、註冊 systemd(或 setsid)服務,之後複用。
數據與安全(文檔原文)
- 設備與設置保存在本機
$DSH_HOME/ssh-remote/state.json(POSIX 上權限 0600)。 - 遠程 dsh 只監聽
127.0.0.1,不向局域網暴露端口。 - 首次連接記錄主機指紋,指紋變化會拒絕連接。
- 可選將本機模型憑證以 0600 同步到遠程工作區。
安裝與啓用¶
在 DeepSeek Harness 至少啓動過一次之後,於插件目錄執行安裝(<插件目錄> 替換爲你本地的 dsh-ssh 解壓或檢出路徑,勿自行拼接未在文檔出現的 dsh plugin add 命令)。
macOS / Linux / WSL:
node <插件目錄>/bin/install.mjs --profile desktop
Windows:
node <插件目錄>\bin\install.mjs --profile desktop
然後完全退出並重新啓動 DeepSeek Harness;側邊欄出現「SSH 遠程」即表示安裝成功。
卸載(只移除本地插件;遠程服務需在界面上刪除項目):
node <插件目錄>\bin\uninstall.mjs --profile desktop
POSIX 上路徑分隔符與 Windows 示例相同,換用 /bin/uninstall.mjs 即可。
典型用法¶
README 給出的可復現流程如下。
- 添加設備:設置 → 遠程設備 → 新建連接,填寫地址和賬號後測試並保存。
- 創建項目:主界面「創建項目」→ 選設備(第一項爲「此電腦」,其後爲已保存的遠程設備,也可直接添加新設備)→ 選文件夾 → 確認信任並創建。首次會在遠端安裝 dsh,之後複用。
- 開始對話:點側欄裏的遠程工作區直接聊天,回答在遠端流式生成。
- 管理:懸停遠程行,在
...中可編輯名稱或刪除項目;刪除保留遠程目錄。
說明:左側「SSH 遠程」面板只管理設備;工作區統一在主界面創建。
適用場景與注意¶
較適合
- 代碼與構建環境在遠端 Linux、本機 WSL 或 Docker 容器,希望與本地 DSH 側欄、流式會話同一套交互的開發者。
- 需要關掉本地客戶端後仍讓遠端 agent 繼續跑長任務的場景。
限制(來自 README)
- 遠程目標需要 Linux 環境,Node ≥ 22 或能下載便攜運行時,且能訪問 npm 鏡像。
- 每個會話首輪有約 3 秒的遠端進程啓動開銷,之後追問即時。
- 本地不鏡像遠程文件,agent 與工具都在目標環境執行。
- WSL 需要 Windows + 已安裝 WSL;Docker 需要運行中的容器;不支持 Windows 遠程主機。
- macOS 上不提供 WSL,與 ZCode 一致。
生態上 DSH 奉行「一切皆插件」;本插件通過 Cordis patch 與客戶端 UI 注入集成(見 package.json 中 dsh.bundle.patch 與 dsh.client 字段)。GitHub 上該倉庫公開星標爲 6、2 forks(以倉庫頁面爲準,會變動)。
結尾¶
dsh-ssh 把「遠端常駐 dsh + 本機投影工作區」落到 SSH、WSL、Docker 三條連接路徑上,並強調本機關閉不中斷遠程生成。若要查看截圖級交互說明,可看倉庫 README 中的效果演示章節。