@jk-uzi/dsh-multi-remote
支持SSH、WSL和Docker三合一远程开发环境接入。 适合需要将智能体执行环境部署在远程服务器、WSL或容器中的开发者。
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:jk-uzi/dsh-multi-remote说明文档
阅读完整 README ↗使用
连上一台机器,然后用 agent 的常规工具干活。
SSH
> 连接 user@example.com:22,项目根 /home/user/proj,用 ~/.ssh/id_ed25519
(调用 remote_connect 工具,kind='ssh')
已连接 …(user@example.com:22)
远程项目根:/home/user/proj
本地镜像锚点:/mr-…
预设:multi-remote-…(可用)
下一步:把上面的「本地镜像锚点」作为工作区打开,然后新建会话。
SSH 掉线了怎么办? 长连接会被网络抖动、服务端重启 sshd、NAT 表项过期打断。 断掉之后插件会自动重连一次,通常你不需要做任何事。 重连时 host key 校验照旧生效(不会因为重连就放行陌生主机)。
WSL
> 连上本机的 Ubuntu-24.04,项目根 /home/user/proj
(调用 remote_connect 工具,kind='wsl', distro='Ubuntu-24.04')
已连接 …(WSL Ubuntu-24.04)
远程项目根:/home/user/proj
本地镜像锚点:…
预设:multi-remote-…(可用)
WSL 不需要任何凭据 —— 它是本机进程。用
wsl -l -q可以列出可用发行版。
Docker
> 连上容器 my-app,项目根 /app
(调用 remote_connect 工具,kind='docker', container='my-app')
已连接 …(容器 my-app)
远程项目根:/app
本地镜像锚点:…
预设:multi-remote-…(可用)
Docker 不需要任何凭据 —— 它连的是本机守护进程。用
docker ps看有哪些容器在跑。 只连已运行的容器,不会替你创建或启动。
Docker Desktop 重启过怎么办? 引擎重启会让旧连接失效,插件会自动重连一次, 通常你不需要做任何事。但注意引擎重启会把容器也停掉 —— 此时报错会说清 「容器没有在运行」并提示
docker start,而不是丢一个看不懂的错误给你。
⚠️ 用户流程有硬约束:必须先选远程工作区(= 锚点目录)、再新建会话。 远程预设只能在会话第一轮开始之前选定,反过来换不了。 走反了的话,插件会拒绝这一步并明确报错,而不是让命令静默落在本机。
工具
| 工具 | 作用 |
|---|---|
remote_connect | 连接一台机器,建立本地镜像 + 注册远程预设 |
remote_profiles | 列出 / 删除已保存的连接档案(list / delete) |
remote_list | 列出当前已连接的远程工作区 |
remote_disconnect | 断开(本地镜像保留,重连后界面立刻有内容) |
remote_refresh | 重新拉取远程目录结构到本地镜像 |
凭据
- 连接档案只保存非敏感字段(主机、端口、账号、路径、私钥路径)
- 口令与私钥内容永不落盘,每次连接现给
- 档案文件权限
0600