pureexe/dsh-windows-remote-ssh: 通過 SSH 遠程控制 Windows 桌面

前言

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。
  • 運行機制:
    • 插件首次使用時會通過 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
羽毛球分组比赛记分
小程序二维码

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

小夜