在 DeepSeek Harness 的插件化架構中,SSH 連接是遠程協作的基礎。原生的 ssh provider 在 macOS 環境下常因 ControlPath 路徑過長而失敗,且缺乏文件操作的安全邊界。dsh-secure-remote 是一個獨立的插件,它通過 bundle patch 的方式替換內置 provider,不涉及上游源碼修改,也不需要遷移現有的 ssh_workspace v1 數據。該插件由 startGalway 維護,遵循 MIT 許可證。
核心功能¶
-
連接穩定性修復
- macOS / Linux:使用短路徑的私有目錄運行 OpenSSH
ControlMaster,解決 macOS 因ControlPath too long導致的 PTY 啓動失敗問題。 - Windows:本地端使用系統
ssh.exe,明確關閉ControlMaster,但狀態探測和應用層重連功能仍可用。
- macOS / Linux:使用短路徑的私有目錄運行 OpenSSH
-
認證與憑證管理
- Key 模式:自動發現 SSH Config 主機和默認密鑰,支持選擇單個密鑰文件或密鑰文件夾。
- Password 模式:只顯示 Host / Port / User / Password;密碼通過 DSH credentials 服務保存,不進入 SSH 參數、日誌或狀態接口。
-
工作區狀態與安全
- 狀態顯示:Workspace 行顯示
connected、connecting、degraded、disconnected狀態,以及延遲和脫敏原因。 - 安全邊界:遠程文件工具嚴格限制在 Workspace 根目錄,拒絕
..、前綴碰撞和符號鏈接逃逸。 - 嚴格校驗:默認保持
StrictHostKeyChecking=yes,不自動降級。 - 遠程限制:遠端必須是 POSIX 系統;檢測到 Windows 等非 POSIX 目標時返回
REMOTE_OS_UNSUPPORTED。
- 狀態顯示:Workspace 行顯示
-
兼容性
- 保留官方
openRawChannel原始 SSH 通道,兼容 Remote Agent 安裝和長連接。 - 保留
SshProfile、RemoteWorkspaceView、Workspace RPC、Session、Bash 和 Terminal 兼容性。
- 保留官方
安裝與啓用¶
安裝該插件需要 DeepSeek Harness Web profile 環境,並確保 Node.js 版本爲 22 或以上。
安裝指定版本:
dsh plugin --profile web add github:startGalway/dsh-secure-remote#v1.1.2
本地開發安裝:
dsh plugin --profile web add file:/absolute/path/to/dsh-secure-remote
安裝完成後重啓 Web profile。卸載插件不會遷移或刪除已有的遠程 Workspace。
配置項¶
插件使用以下默認配置:
workspaceBoundary: deny
connectionReuse: true
controlPersistMs: 300000
serverAliveIntervalSec: 15
serverAliveCountMax: 3
statusProbeIntervalMs: 30000
maxTransferBytes: 8388608
已知限制¶
- Bash 行爲:Bash 不受 Workspace 文件邊界限制,擁有遠程 SSH 賬號本身的完整權限。
- 遠程 Windows:當前不支持連接到 Windows 遠端目標。
- 功能範圍:當前版本不包含雙向目錄鏡像、原子文件傳輸、後臺任務和遠程 Git 工作流。
- Runtime:Unix 側保留一個
0700權限的短路徑兼容啓動器;Windows 直接調用系統ssh.exe。
適用場景¶
該插件適合需要穩定 SSH 連接、注重憑證安全存儲以及需要嚴格文件邊界控制的開發場景。由於插件以 DSH 進程權限運行,安裝前建議檢查源碼與許可證。