dsh-devices:dsh 多设备组网插件

前言

在 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_discover
  • fleet_pair
  • fleet_ssh_exec
  • fleet_workspace
  • fleet_upload
  • fleet_download
  • fleet_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,可设为:

  • mdns
  • ssh
  • both

禁用某个模块后,该模块下的工具不会注册。

安装与启用

下面按已核实的命令介绍安装方式。

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_exec
  • fleet_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_upload
  • fleet_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.jsonengines 要求 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/cordis peer 依赖
  • 目标设备的 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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜