DeepSeek Harness (DSH) 生態支持插件化擴展。對於需要在遠程 Linux 服務器上執行操作的場景,直接編寫 Shell 腳本或硬編碼 SSH 命令較爲繁瑣。dsh-ssh-plugin 爲此提供瞭解決方案,它通過系統自帶的 SSH 客戶端爲模型增加了遠程執行能力,並支持持久化連接管理。
插件定位¶
該插件由 Azurer0121 維護,開源協議爲 MIT。它通過註冊 ssh_exec 和 ssh_connections 兩個模型工具,解決了智能體與遠程服務器交互的痛點:模型可以直接執行遠程命令,無需人工介入。
核心功能¶
插件主要包含以下能力:
- ssh_exec 工具:允許模型在遠程 Linux 服務器上執行 Bash 命令。
- ssh_connections 工具:管理持久化的 SSH 連接配置,支持保存、綁定工作區和列出可用主機。
- 密鑰認證:僅支持基於密鑰的身份驗證(
BatchMode=yes),不進行密碼/私鑰短語提示,確保快速失敗而非掛起。 - SSH Config 集成:自動識別並使用本地的
~/.ssh/config文件中的主機別名,無需手動保存。 - 雙端支持:在宿主端註冊設置命名空間,在瀏覽器端提供設置卡片界面。
- 優雅降級:當缺少
settings或workspaceRegistry等服務時,插件會自動降級,不影響基礎功能。
安裝與啓用¶
通過 npm、GitHub 倉庫或本地目錄安裝。如果是本地檢出,需要先構建。
# 從 npm 安裝
dsh plugin --profile <name> add dsh-ssh-plugin
# 從 GitHub 安裝
dsh plugin --profile <name> add github:Azurer0121/dsh-ssh-plugin
# 從本地目錄安裝(需先構建)
dsh plugin --profile <name> add ./dsh-ssh-plugin
本地安裝前需執行構建命令:
cd dsh-ssh-plugin
pnpm install && pnpm bundle
安裝後,通過 dsh --profile <name> 啓動 Harness。
典型用法¶
ssh_exec¶
模型獲得 ssh_exec 工具,支持自然語言指令或顯式參數調用。
顯式參數示例:
| 參數 | 是否必需 | 說明 |
|---|---|---|
host |
是 | 遠程主機,格式爲 [user@]host,或 ~/.ssh/config 中的別名。 |
command |
是 | 在遠程執行的 Bash 命令。 |
port |
否 | SSH 端口,默認 22。 |
key_path |
否 | 私鑰絕對路徑,省略則使用默認路徑或 ssh-agent。 |
timeout_ms |
否 | 前臺超時時間(毫秒),默認 30000。 |
connection |
否 | 已保存連接的標籤,用於填充 host/port/user/keyPath。 |
自然語言示例:
模型可以理解類似“ssh 到 root@10.0.0.5 並顯示磁盤使用情況”的指令。
ssh_connections¶
用於管理持久化連接,數據保存在 Harness 的設置中,重啓後依然存在。
save: 保存一個新的連接配置(標籤、主機、端口、用戶、密鑰路徑)。list: 列出保存的連接,並包含從~/.ssh/config發現的主機(只讀)。delete: 刪除指定標籤的連接(同時解綁相關的工作區)。use: 將當前工作區綁定到某個連接標籤。綁定後,ssh_exec可省略host參數,直接使用默認連接。
適用場景與注意¶
- 遠程運維:自動化查看服務器狀態、日誌分析或文件操作。
- 環境隔離:利用工作區綁定功能,不同項目使用不同的 SSH 配置。
注意事項:
- 無密碼交互:插件不處理密碼或私鑰短語提示。如果密鑰未配置或無權限,SSH 會立即失敗。
- 命令傳輸方式:遠程命令通過 SSH 的 stdin 傳輸至
bash -s,因此 Shell 轉義規則與本地 Bash 一致。 - 配置發現:
~/.ssh/config的讀取是盡力而爲的,配置文件缺失或不可讀不會導致插件報錯,只會顯示空列表。 - Windows 權限限制:在 Windows 系統上,必須使用
danger-full-access沙盒策略的會話運行,否則ssh.exe可能因權限不足無法啓動。 - 密鑰安全:插件僅存儲密鑰文件路徑,密鑰內容永遠不會離開磁盤。
總結¶
dsh-ssh-plugin 爲 DeepSeek Harness 提供了標準化的 SSH 遠程執行能力。通過對接本地的 SSH 客戶端和配置文件,它降低了智能體與遠程基礎設施交互的門檻。開發者在使用前應確保目標服務器支持基於密鑰的 SSH 訪問,並在 Windows 環境下配置正確的沙盒策略。
相關鏈接:
* 插件目錄:azurer0121/dsh-ssh-plugin
* GitHub 倉庫:Azurer0121/dsh-ssh-plugin