Skip to content
dsh.fish
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

  • This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.
Source