前言¶
在使用 DeepSeek Harness (DSH) 進行開發或運維時,經常需要遠程接入 Linux 主機。DSH 原生基於 Web 環境,缺少直接的 SSH/SFTP 能力。爲了解決這一問題,dsh-tool-ssh 插件提供了類似 MobaXterm 的遠程接入能力,支持會話管理、命令執行與文件傳輸。
該插件由 hoshinoick811 維護,基於 MIT 許可證開源。它將 SSH/SFTP 能力集成到 DSH 的 Web GUI 中,允許用戶通過瀏覽器直接操作遠程主機。
核心功能¶
該插件主要提供以下能力:
- 連接配置管理:支持保存主機連接信息,包括用戶名、密鑰路徑等,配置存儲在本地。
- 持久會話複用:SSH 會話在 DSH 宿主進程內持久運行,支持多路複用。切換視圖或終端標籤頁時,連接不斷開。
- 遠程命令執行:通過
ssh_exec工具在遠程主機執行 Shell 命令。 - 文件操作:支持通過 SFTP 進行文件上傳、下載、讀取和寫入。
- Web GUI 操作窗口:提供圖形化界面,包含文件瀏覽器和實時終端(基於 xterm.js 和 Canvas 渲染器)。
- 交互優化:支持拖拽分欄調節文件欄與終端欄寬度,支持會話保持與流式輸出回放。
安裝與啓用¶
在終端中執行以下命令安裝插件:
dsh plugin --profile web add git+https://github.com/hoshinoick811/dsh-tool-ssh.git
安裝完成後,重啓 DSH 的 Web profile (GUI) 即可使用。
典型用法¶
安裝後,可以通過 DSH 的工具列表調用以下命令。
1. 管理連接配置¶
添加一條名爲 aliyun 的連接配置:
ssh_connections action=add name=aliyun host=192.0.2.1 username=root privateKeyPath=C:\keys\aliyun.pem
2. 執行遠程命令¶
在已保存的 aliyun 連接上執行系統狀態查詢:
ssh_exec connection=aliyun command="systemctl status nginx"
3. 讀寫遠程文件¶
讀取遠程配置文件:
ssh_read connection=aliyun remotePath=/etc/nginx/nginx.conf
向遠程文件寫入內容:
ssh_write connection=aliyun remotePath=/etc/nginx/conf.d/app.conf content="server { listen 80; ... }"
4. 文件傳輸¶
上傳本地文件到遠程服務器:
ssh_upload connection=aliyun localPath=./dist/index.html remotePath=/var/www/app/index.html
下載遠程日誌文件到本地:
ssh_download connection=aliyun remotePath=/var/log/nginx/error.log
5. 會話管理¶
斷開名爲 aliyun 的連接:
ssh_disconnect connection=aliyun
適用場景與注意¶
- 適用對象:僅支持接入 Linux 主機(例如阿里雲 ECS)。遠程主機需放行 22 端口。
- 安全說明:
- 密碼與私鑰內容以明文形式存於本機配置文件,請自行保證本機安全。
- 插件運行在 DSH 宿主進程內,不受 agent 沙箱約束。執行遠程命令和連接主機時需謹慎。
- 建議使用密鑰認證而非密碼,並設置密鑰文件的本地權限。