前言¶
DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。在進行遠程自動化操作時,通常需要安裝特定的桌面控制軟件或使用 RDP。pureexe/dsh-windows-remote-ssh 插件解決了這個問題:它允許 DSH 通過 SSH 連接到一臺 Windows 機器,並提供與本地 dsh-click 插件相同的工具面。這意味着你可以在 Linux、macOS 或 Windows 上運行 Harness,而對端只需運行 Windows 和 SSH 服務器即可。
核心功能¶
該插件爲 DSH 添加了一組遠程控制工具,主要能力包括:
* 應用管理:列出正在運行的應用(app_list)以及啓動指定應用(app_launch)。
* 屏幕操作:截圖(screen_shot)以及通過 UI Automation 讀取屏幕內容(screen_read)。
* 輸入交互:模擬鼠標點擊、鍵盤輸入、滾動和按鍵(click, type, scroll, key)。
* 安全與隔離:
* 所有修改操作(輸入交互)默認需要批准。
* 默認不竊取鼠標/鍵盤焦點(除非顯式允許)。
* 拒絕過時的觀察結果。
* 檢查進程身份。
* 無代理部署:目標機器上無需預裝任何代理或第三方模塊。
安裝與啓用¶
通過 DSH 的插件管理命令安裝:
dsh plugin --profile web add "github:pureexe/dsh-windows-remote-ssh#main"
安裝後,需要在配置文件中指定連接信息。示例配置如下(通常在 cordis.patch.yml 中):
- insert:
- id: dsh-windows-remote-ssh
config:
ssh:
host: <ip_address>
user: <username>
# 推薦使用私鑰而非密碼
# privateKeyPath: /path/to/id_ed25519
autoApproveWindows: ['^Notepad']
使用方式¶
連接信息可以通過配置文件、環境變量或工具調用時的參數指定。
1. 配置默認連接
在 config.ssh 中設置 host、user 和 password 或 privateKeyPath。這樣在工具調用時可以省略 ssh 參數,直接使用默認目標。這種方式推薦用於固定的目標機器。
2. 按需指定目標
在工具調用時直接傳入 ssh 參數。參數包括 host、port、user、password 或 privateKeyPath。這適合目標不固定或對話中動態變化的情況。注意,這種方式會將憑證暴露在對話上下文中。
3. 使用環境變量
利用環境變量 SSH_HOST、SSH_PORT、SSH_USER、SSH_PASSWORD、SSH_KEY_PATH、SSH_KEY_PASSPHRASE 來傳遞憑證,避免將敏感信息寫入配置文件或日誌。
4. 工具加載策略
默認開啓 lazyToolLoading,啓動時只註冊 pc_control 工具。後續調用該工具後纔會註冊其他工具。如果需要一次性註冊所有工具,請設置 lazyToolLoading: false。
5. 特殊場景配置
* 遊戲與 UWP 支持:對於忽略消息隊列的遊戲或 DirectX/UWP 應用,使用 hardware: true 參數以繞過 UI Automation 限制。
* 強制前臺:如果必須將窗口帶到前臺,使用 focusFallback: 'allow' 顯式允許。
環境要求與注意事項¶
在使用前,請確認目標機器和 Harness 環境滿足以下條件:
- 目標機器:
- 目標賬戶必須是本地管理員,並且必須處於交互式登錄狀態(即已解鎖控制台或 RDP 會話)。
- 目標機器上必須安裝並運行
Win32-OpenSSH(sshd)。
- Harness 環境:
- Harness 運行環境需要 Node.js 版本
^22.19.0 || >=24.0.0。
- Harness 運行環境需要 Node.js 版本
- 運行機制:
- 插件首次使用時會通過 SFTP 將一個 PowerShell 輔助腳本上傳到目標機器。
- 腳本通過一個一次性計劃任務在目標用戶的真實桌面會話中運行,從而避免 Session 0 的隔離問題。
- 通信基於 SFTP 的 JSON 文件請求/響應,避免控制台編碼問題。
總結¶
pureexe/dsh-windows-remote-ssh 插件爲 DSH 提供了一套成熟的遠程 Windows 控制方案。它複用了本地自動化工具的安全模型和操作邏輯,同時通過 SSH 實現了跨平臺的遠程執行能力。對於需要通過代碼控制遠程 Windows 機器的開發者來說,這是一個直接可用的工具。
- 插件主頁:https://www.skillhub.cn/plugins/pureexe/dsh-windows-remote-ssh
- 源碼倉庫:https://github.com/pureexe/dsh-windows-remote-ssh