前言¶
在使用 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 沙箱约束。执行远程命令和连接主机时需谨慎。
- 建议使用密钥认证而非密码,并设置密钥文件的本地权限。