Bundle
dsh-cloud-connector
云服务器连接插件:SSH连接、远程命令、文件传输、GPU监控、环境管理、任务队列 + 设置页服务器状态
- Source
- gzr123166
- License
- MIT
- Updated
- Updated 19 hours ago
Readme
# dsh-cloud-connector
一个 Codex 风格的云服务器 SSH 连接管理器,集成进 DeepSeek Harness(DSH)的 Web GUI。
连接、断开、多服务器管理、端口隧道——全部在「设置 → SSH 连接」里可视化操作,配置持久化,重启不丢。同时提供一组 `cloud_*` 对话工具,可在聊天中直接接管服务器。
## 功能
### 设置页「SSH 连接」(Codex 风格)
- **输入 IP 即连接**:点「+ 添加」,填主机/端口/用户名/身份文件,立即接入
- **随时连接 / 断开**:每个服务器一个开关式按钮
- **多服务器管理**:独立配置、编辑(⚙)、删除(🗑)
- **开机自动连接**:每台服务器可单独开关,DSH 启动后自动接入
- **持久化**:服务器列表存 `servers.json`,重启不丢
### 端口隧道(内网打通)
把服务器上只监听 `127.0.0.1` 的程序(网站、Jupyter、数据库……)通过 SSH 隧道映射到本地浏览器:
- `localhost:本地端口` → `服务器:远程端口`
- 启停开关 + 开机自动建立
- 例:服务器 `8787` 端口 → 本地 `http://localhost:8787`
### 对话工具(cloud_*)
| 工具 | 说明 |
|------|------|
| `cloud_connect` | 连接服务器(输入 IP 即可,默认连腾讯云示例) |
| `cloud_exec` | 远程执行命令 |
| `cloud_transfer` | scp 上传/下载文件 |
| `cloud_server_info` | 系统信息(主机名/CPU/内存/磁盘/GPU/Python) |
| `cloud_gpu_monitor` | GPU 监控(nvidia-smi) |
| `cloud_env_manager` | conda/Python 环境管理 |
| `cloud_task_queue` | Slurm 任务队列 |
| `cloud_list_connections` | 列出服务器及连接状态 |
| `cloud_disconnect` | 断开连接 |
| `cloud_manage_servers` | 增删改服务器配置、设置开机自动连接 |
## 安装
### 方式一:dsh plugin 命令
```bash
dsh plugin --profile web add github:<owner>/dsh-cloud-connector#main
```
### 方式二:手动
把本仓库加入 `~/.dsh/profiles/web/package.json` 的 dependencies,然后:
```bash
cd ~/.dsh/profiles/web
pnpm install
```
确认 `~/.dsh/profiles/web/package.json` 的 `dsh.profile.bundles` 数组里包含 `dsh-cloud-connector`,重启 DSH。
## 使用
1. 打开 DSH → **设置 → SSH 连接**
2. 点「+ 添加」→ 输入服务器 IP / 端口 / 用户名 / 私钥路径 → 连接
3. 底部「端口隧道」→ 建立隧道,把服务器端口映射到本地
4. 或在对话里直接说「连接服务器」「在服务器上执行 xx」
## 私钥说明
- 私钥路径默认 `C:/Users/linxianyuan/.ssh/id_rsa_cloud`(这是**本机路径示例**,请改成你自己的)
- 首次使用请把服务器公钥写入 `~/.ssh/authorized_keys`
- 推荐用 ASCII 路径的私钥(Windows 下 `cmd.exe` 执行 ssh 时中文路径会损坏命令行)
## 配置持久化
- `servers.json`:服务器列表(含私钥路径,**已加入 .gitignore,勿提交**)
- `tunnels.json`:隧道配置
- 参考 `servers.example.json` 手动初始化
## 开发
`lib/client.js` 是 DSH 客户端插件,必须用 `window.__ModuleLoader__.load({...})` 工厂包装格式(DSH 不执行 ESM 客户端源码)。ESM 原稿在 `lib/client.esm.js`,改完跑:
```bash
node scripts/wrap-client.mjs
```
## License
MIT
Install
dsh plugin --profile web add github:gzr123166/dsh-cloud-connector
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-cloud-connector from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.