前言¶
在 DSH / 智能体开发场景中,经常会出现一台机器运行 dsh 会话,但需要访问另一台开发机、云主机或测试机的情况。手工处理时,通常要先确认网络位置,再手动 SSH、复制文件、检查密钥是否配对。
dsh-devices 是一个 dsh 插件,面向这类多设备协作场景。它提供 mDNS 同网发现、设备密钥配对、SSH 跨网直连执行命令、远程工作区设置/查看、文件上传/下载、配对设备存活探测,以及邀请码一键加入舰队。
DSH 的扩展方式偏“一切皆插件”;插件目录是独立社区站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-devices 用于让多台安装 dsh 的设备通过插件工具协作。
已核实的信息包括:
- 插件名:
dsh-devices - 仓库地址:
https://github.com/polaris-smart/dsh-devices - 插件目录页:
https://www.skillhub.cn/plugins/polaris-smart/dsh-devices - 许可证:MIT
- 抓取到的
package.json版本:0.1.2 - 安装命令:
dsh plugin add dsh-devices
安装后,插件会在 dsh 会话内注册 fleet_* 工具,供 dsh 会话中的 agent 调用。已核实的工具名包括:
fleet_discoverfleet_pairfleet_ssh_execfleet_workspacefleet_uploadfleet_downloadfleet_status
核心能力¶
同网发现与配对¶
同网场景使用 mDNS 发现设备。
已核实的能力包括:
fleet_discover:扫描 LAN 中的设备fleet_pair:与设备密钥配对- mDNS 为 beta 状态
- 仅限同一 LAN / 同一子网
- 需要 UDP
5353
配对是双向的。设备完成配对后,只能访问已配对设备。
fleet 密钥位于:
~/.fleet/ssh-keys/
该目录中的密钥文件权限要求为 0600。
SSH 跨网直连执行命令¶
跨网场景使用 SSH 直连。
已核实的能力包括:
fleet_ssh_exec:在已配对设备上执行命令fleet_workspace:设置或查看远程工作区- 当前版本下,NAT 隔离设备无法互连
- 跨网依赖 SSH 可达性
文件上传与下载¶
已核实的能力包括:
fleet_upload:上传文件到已配对设备fleet_download:从已配对设备下载文件- 插件描述中提到 SFTP 文件传输
配对设备存活探测¶
fleet_status 用于探测已配对设备的存活状态。
已核实的信息包括:
- 可返回在线状态
- 可返回延迟
- 可返回最后使用时间
邀请码加入舰队¶
邀请码流程用于新设备入队。
已核实的 CLI 命令包括:
fleet8 invite <your-ip-or-host> --user <remote-user> --port 22
fleet8 join <invite-code>
fleet8 allow <device-id> "<public key from the step above>"
模块控制¶
插件支持按模块禁用工具注册。
已核实的配置项为 modules,可设为:
mdnssshboth
禁用某个模块后,该模块下的工具不会注册。
安装与启用¶
下面按已核实的命令介绍安装方式。
1、安装 dsh¶
先安装 dsh:
npm install -g @deepseek-ai/dsh
2、安装 dsh-devices¶
使用插件安装命令:
dsh plugin add dsh-devices
如果使用本地 tgz 包,可以用:
dsh plugin add ./dsh-devices-<version>.tgz
3、查看 Node 要求¶
package.json 中的 engines 字段为:
"node": ">=22.18"
README 的 Linux 平台说明中写有:
Node ≥ 22.19 required
两处表述不一致。安装前建议按目标平台说明检查 Node 版本。
4、查看 peer 依赖¶
package.json 中的 peerDependencies 包含:
"@deepseek-ai/cordis": "*"
资料中同时出现 @deepseek-ai/dsh 与 @deepseek-ai/cordis,但二者关系未说明。安装前建议查看依赖说明。
5、查看补丁字段¶
package.json 中有:
"dsh": {
"bundle": {
"patch": "./cordis.patch.yml"
}
}
README 中写有 Zero core changes / uninstall leaves no core patches。由于资料中同时存在“零核心改动”的描述和 dsh.bundle.patch 字段,安装前应检查 ./cordis.patch.yml 与插件源码。
典型用法¶
同网:发现并配对¶
同网使用先做发现,再做配对。
1、至少准备 2 台设备,并且每台设备都安装 dsh-devices。
2、在一台设备上启动 mDNS 相关服务:
fleet7 serve
3、在另一台设备上通过 fleet_pair 与该设备密钥完成配对。
4、配对完成后,在 dsh 会话中调用 fleet_discover 查看 LAN 设备。
跨网:SSH 直连¶
跨网使用先确认 SSH 可达,再执行命令。
1、目标设备需要开放 SSH,常见端口为 22。
2、将公钥加入目标设备的 authorized_keys。
3、执行测试命令:
fleet8 ssh my-server "hostname"
4、在 dsh 会话中使用:
fleet_ssh_execfleet_workspace
邀请码入队¶
下面是一个三步流程。
1、在已有设备上生成邀请码:
fleet8 invite <your-ip-or-host> --user <remote-user> --port 22
2、在新设备上加入舰队:
fleet8 join <invite-code>
3、回到已有设备授权新设备:
fleet8 allow <device-id> "<public key from the step above>"
完成后,新设备可以进入已配对设备列表。
文件传输¶
文件上传和下载通过 agent 工具调用:
fleet_uploadfleet_download
会话内快捷调用¶
安装后,可以在 dsh 会话中直接说:
call fleet_discover
查看同网设备。配对完成后,可以用:
fleet_ssh_exec
对远程设备执行命令。
适用场景与注意¶
适用场景¶
dsh-devices 适合以下场景:
- 在一台 dsh 设备上访问同一局域网内的其他设备
- 通过 SSH 管理跨网主机
- 让 dsh 会话中的 agent 调用
fleet_*工具执行命令、查看工作区、上传或下载文件 - 使用邀请码让新设备加入已配对舰队
使用前提¶
至少需要 2 台设备,并且每台设备都安装 dsh-devices。
配对是双向的。单台设备没有可配对对象。
网络限制¶
同网发现依赖 mDNS。
已核实的限制包括:
- mDNS 为 beta
- 仅限同一 LAN / 同一子网
- 需要 UDP
5353 - 跨网设备使用 SSH 直连
- NAT 隔离设备当前版本无法互连
macOS 注意¶
macOS 的 SSH server 默认关闭。
如果要让其他设备远程命令这台 macOS 机器,需要开启 Remote Login。
Linux 注意¶
Linux 平台已核实的注意事项包括:
- README 平台说明要求 Node ≥
22.19 package.json的engines要求 Node ≥22.18- 作为被管设备时,需要
sshd运行 authorized_keys权限为600~/.ssh权限为700- 云安全组需要放行 SSH
22
Windows 注意¶
Windows 作为被管设备时,需要安装 OpenSSH Server。
Windows 作为控制器时,&& 链可能只返回第一条命令输出。建议拆分复合命令。
权限与安全¶
插件以当前 dsh 进程权限运行。安装前建议检查:
- 插件源码
- MIT 许可证
package.json./cordis.patch.yml@deepseek-ai/cordispeer 依赖- 目标设备的 SSH 配置和密钥权限
已核实的运行约束包括:
- 只能访问已配对设备
- 密钥文件权限要求为
0600 - 错误返回可读文本,而不是直接抛异常
结尾¶
dsh-devices 的价值在于把同网发现、密钥配对、SSH 跨网执行、文件传输和舰队入队放进 dsh 会话工具中,让 agent 可以直接调用。
使用前需要确认设备数量、网络位置、SSH 可达性、Node 版本、密钥权限,以及插件源码和补丁文件。
相关地址:
- 插件目录页:
https://www.skillhub.cn/plugins/polaris-smart/dsh-devices - GitHub:
https://github.com/polaris-smart/dsh-devices