前言¶
在 DeepSeek Harness(DSH)裏做科研或運維類任務時,模型往往需要登錄集羣、讀日誌、改腳本、拉結果。常見做法是另開終端手工 SSH,或在對話裏粘貼大段輸出,上下文容易斷,環境說明(module、Conda、Slurm 分區)也要反覆交代。
dsh-remote-suite 把遠端 shell、文件讀寫和傳輸做成 DSH 插件工具,連接由 Windows 本機的 ssh.exe、scp.exe 或 wsl.exe 發起;服務器側不需要安裝 Agent,也不需要主動連外網。下面介紹它是什麼、怎麼裝、怎麼用,以及權限與安全上的注意點。
這是什麼¶
- 倉庫: Char0nChengg/dsh-remote-suite
- 維護者: Char0nChengg
- 分類:聯網工具(社區目錄 SkillHub 條目)
- 當前包版本(
package.json):0.2.0,MIT 許可證 - DSH 兼容聲明:已在
0.2.1-rc.3上驗證爲 compatible
插件簡介(與目錄一致):通過 OpenSSH 或 WSL 爲 DSH 提供遠程 shell、文件與傳輸能力,並可爲每個服務器預置環境說明;服務器無需 Agent。
安裝後在 設置 → 插件 中顯示爲 遠程終端與文件 / Remote Shell & Files。bundle 默認帶 WSL 目標 wsl-ubuntu;沒有 WSL 時可刪掉,僅用 SSH 或臨時目標。
環境要求¶
使用前需滿足 README 中的條件:
- Windows 上的 DSH Desktop / Web Profile;
- Windows 自帶 OpenSSH Client(
ssh.exe、scp.exe),或通過sshPath/scpPath指定路徑; - 可選:WSL 2 與至少一個發行版;
- SSH 目標:Linux +
sshd+ GNU coreutils(bash、stat、find、head、tail、timeout); - 認證:SSH 密鑰或 ssh-agent;插件不保存密碼,
BatchMode=yes禁止交互式密碼提示。
核心功能¶
工具一覽¶
| 工具 | 作用 |
|---|---|
remote_targets |
列出已配置目標、SSH config 別名、環境提示,可選連通性檢查 |
remote_exec |
在目標上以 bash -lc 執行命令,返回退出碼與有界 stdout/stderr |
remote_read |
讀遠端文本;返回大小、mtime、權限等;大文件支持 head/tail/range |
remote_list |
列目錄 |
remote_write |
原子寫入 UTF-8 文件(臨時文件 + rename),可設 mode=755 |
remote_transfer |
Windows 與目標間上傳/下載;SSH 支持目錄遞歸,WSL 僅文件 |
remote_config |
在聊天中查看/修改目標、環境說明與全局 prompt,寫入 profile patch 並熱生效 |
臨時目標無需事先寫入配置,例如 ssh:myserver(複用 ~/.ssh/config)、ssh://User@host:2222、wsl:Ubuntu。
可視化與配置¶
安裝後重啓一次 DSH,在 設置 → 遠程服務器 可管理服務器:列表、認證方式、ForwardAgent 狀態、測試連接、增刪改目標,以及編輯各機 environment 與全局遠程提示。密碼不會寫入插件、瀏覽器或 YAML;當前僅支持 SSH key / ssh-agent。
配置方式二選一:聊天裏用 remote_config(推薦),或手動編輯 profile 的 cordis.patch.yml 中 dsh-remote-suite 段。當存在 prompt 或 targets[].environment 時,插件會把 dsh-remote-suite:targets 注入 system prompt,供模型在請求前看到 module/Conda/Slurm 等說明——不會自動執行這些命令,變更後仍應通過 remote_exec 驗證。
安裝與啓用¶
npm 包名預留爲 @char0nchengg/dsh-remote-suite;README 寫明發布到 npm 後可用 DSH 插件安裝器安裝,目前推薦從 GitHub 取得 bundle 後本地安裝。
先把倉庫內容放到本機目錄(README 示例路徑 D:\dsh-remote-suite),再在 DSH 中讓 Agent 執行:
plugin_manager install_bundle({ target: "D:\\dsh-remote-suite" })
路徑需與實際目錄一致。首次安裝或更新插件 Client 半側後需重啓 DSH(啓動時掃描客戶端插件;僅刷新頁面可能看不到新的設置頁)。Host 側 remote_config 工具通常不需重啓。
典型用法¶
自然語言¶
不必記工具名,直接在聊天中描述意圖,例如:
列出 myserver 上 ~/project 的文件
讀一下 myserver 上 ~/project/run.log 最後 100 行
把 myserver 上的 submit.sh 下載到 D:\results
在 myserver 的 ~/project 下提交 sbatch submit.sh
在 WSL Ubuntu 裏看一下當前目錄
若 ~/.ssh/config 已有 Host 別名,可直接用 ssh:別名,無需改插件配置。
顯式調用¶
remote_targets({ "check": true })
remote_exec({ "target": "ssh:myserver", "command": "hostname; pwd" })
remote_targets 會列出已配置目標與 config 中的 Host 別名,且不會主動連接它們。
改環境與全局提示(聊天示例)¶
看看遠程插件的配置
把 wsl-ubuntu 的環境說明改成:默認用戶,已裝 conda
給 myserver 加上環境:module load intel/2022;conda activate example-env
把全局遠程提示改成:登錄節點不要跑重計算,優先 sbatch
對應動作爲 remote_config 的 show、set_environment、upsert_target、remove_target、set_prompt 等;詳見 README 表格。
手動 YAML 的完整字段示例見倉庫 targets.example.yml。
適用場景與注意¶
適合誰:主要在 Windows 上使用 DSH,需要操作 WSL 發行版或 Linux SSH 服務器(含 HPC 登錄節點),並希望把 module/Conda/作業提交習慣寫進可編輯的環境說明,減少重複提示。
權限與信任:這是高權限插件——remote_exec 等價於遠端 SSH 用戶的 shell 權限,remote_write / remote_transfer 可改遠端文件,remote_config 會寫當前 profile 的 cordis.patch.yml。安裝前應閱讀源碼與 MIT 許可證,使用專用、最小權限的 SSH 密鑰;不要把密碼、token、私鑰寫進 environment 或 prompt(會進入模型上下文與會話記錄)。插件以當前 DSH 進程及所配置密鑰的權限運行,僅在可信會話中啓用 remote_config,改動前先 action: "show"。
限制(README 摘要):
- 遠端適配 Linux + GNU 工具鏈;macOS/BSD、Windows OpenSSH 服務端未適配。
- WSL 目錄級上傳/下載未實現;大文件或二進制優先
remote_transfer,remote_read的auto對超過 2 MiB 僅元數據與預覽。 - 無持久 shell、端口轉發或遠端 Agent;長任務應用 Slurm/PBS 或
nohup。 - 服務器須能被 Windows 主動訪問(VPN 或端口映射)。
DSH 生態是「一切皆插件」;SkillHub 等社區目錄爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-remote-suite 把 Windows 側已有的 OpenSSH/WSL 能力接到 DSH Agent 上,在不部署服務端 Agent 的前提下完成遠程命令、文件與傳輸,並用 profile 級配置和環境預加載降低集羣協作成本。