前言¶
DSH 的插件方式讓客戶端能力可以按需安裝。對於需要遠程機器上的文件、Shell 和終端操作的智能體工作流,常見問題是:遠程 Host 配置分散在 OpenSSH 中,認證、代理、密鑰策略不想複製進插件,同時 DSH 原生工具又需要穩定的遠端執行邊界。dsh-ssh-remote 就是爲這個場景準備的 DeepSeek Harness 插件。它由 CrazyShout 維護,定位是 Codex 風格 SSH 遠程工作區:從本機 OpenSSH 配置發現具體 Host,通過標準「添加工作區」選擇遠端目錄,並把 DSH 原生文件、Shell 和終端操作路由到遠端版本化 helper。
這是什麼¶
dsh-ssh-remote 是 DSH 的插件。它把遠端工作區的連接事實交給本機 OpenSSH,插件側處理文件、Shell、終端和狀態展示。許可證爲 MIT,GitHub 倉庫爲 https://github.com/CrazyShout/dsh-ssh-remote。
核心功能¶
下面按能力分列。
- 從本機 OpenSSH 配置發現具體 Host,並保留原始 Host alias。
- 使用標準「添加工作區」選擇遠端目錄。
- 將 DSH 原生文件、Shell 和終端操作路由到遠端版本化 helper。
- 自動安裝並校驗版本化 helper,不使用
sudo、curl | sh、postinstall或遠端包管理器。 - 遠端文件讀取/寫入使用穩定 token、臨時 inode、
fsync、版本複覈和原子發佈。 - 遠端 Shell 與真實遠端 PTY 支持有界輸出和斷線重連繼續讀取。
- Linux 上
read-only/workspace-write進程和 PTY 使用 bubblewrap 隔離。 - 設置頁展示安裝中、連接中、已連接、能力受限、重連中、錯誤等狀態。
- 舊 DSH host 設置仍可使用加固後的 ssh2/SFTP 兼容路徑。
環境要求¶
安裝和啓用前,先確認下面這些條件:
- 本機 Node.js 22 或更高版本。
- DSH
0.1.1-rc.2或兼容的更新0.1.x版本。 ~/.ssh/config中存在具體 Host alias,且ssh <alias>的 batch 連接可用。- 遠端是 POSIX 系統,並提供 Python 3.9 或更高版本。
- Linux 上如啓用
read-only/workspace-write進程和 PTY 隔離,需要 bubblewrap(bwrap)。
helper 連接固定使用 BatchMode=yes。Web 後臺連接無法回答交互式密碼、PIN、passphrase 或 MFA 提示。
安裝與啓用¶
從 GitHub 安裝:
dsh plugin --profile web add 'github:CrazyShout/dsh-ssh-remote'
安裝後重啓 dsh web。打開「設置 → SSH Remote」,可以先連接,也可以直接在「添加工作區」中選擇主機。首次連接會自動安裝匹配版本的 helper。
典型用法¶
1、把 User、Port、代理和認證信息寫在 OpenSSH 配置裏,不要編碼爲 ssh://user@host:port。保留一個具體 Host alias,例如你在本機已經能執行的 ssh devbox。
2、在 Web 使用前先運行一次:
ssh devbox
按你的 OpenSSH 策略覈對新主機指紋。
3、在 DSH 的「添加工作區」中選擇該 Host 和遠端目錄。
4、使用 DSH 的文件、Shell 和終端能力;設置頁會展示當前連接與能力狀態。
適用場景與注意¶
適合已經在 OpenSSH 中維護遠程 Host、密鑰、證書、agent 或代理策略,並希望把 DSH 的文件、Shell 和終端操作放到遠端執行的團隊或個人。
需要注意:
- 插件以當前
dsh進程權限運行,安裝前應檢查源碼與許可證,並確認 MIT 許可證是否符合你的使用要求。 - 插件不會修改
~/.ssh/config、私鑰或known_hosts。 - DSH 上游限制:Harness Workspace 必須是真實本地目錄,插件會創建很小的本地 anchor。
- DSH 上游限制:
SubprocessRuntime.spawn()是同步接口,必須立即返回本機 PID。 - DSH 上游限制:當前 terminal tool 沒有 resize verb。
- DSH 上游限制:DSH 歷史、配置、插件和 agent loop 仍運行在本機。
- DSH 上游限制:
listDir()暫無分頁契約,超過 1000 項的目錄會誠實失敗。 - 任意不合作的外部 writer 仍可能卡入最後一次檢查到 rename 的極短窗口,能力報告
externalWriterRaceFree: false。
短結尾¶
dsh-ssh-remote 的價值在於讓 DSH 的遠程工作區繼續使用本機 OpenSSH 的 Host 配置,並把遠端文件、Shell 和終端操作交給版本化 helper 處理。可確認的倉庫地址是:
https://github.com/CrazyShout/dsh-ssh-remote
目錄頁 URL 未在已覈實資料中出現,本文不給出未確認地址。