01
多服务器终端
用标签页同时连接多台服务器。侧边栏支持分组折叠、搜索、右键菜单,以及完整的增删改。
浏览器里的 SSH 终端
OpsUp 是一款基于浏览器的 SSH 终端管理工具:多服务器连接、跳板机代理、密钥复用。单个二进制文件部署,前端内嵌,数据存放在 SQLite。
在一个浏览器标签页里,管理你的整批服务器。
用标签页同时连接多台服务器。侧边栏支持分组折叠、搜索、右键菜单,以及完整的增删改。
通过一台直连跳板机访问内网机器。每条连接支持一台跳板机,不支持嵌套跳转。
新增服务器时可以粘贴私钥、导入文件,或直接复用已有服务器的密钥,不用重复录入。
通过 SFTP 上传文件,先写入私有临时文件再发布;覆盖已有文件时保留原有权限与属主。
基于 IronRDP WASM 支持 NLA 会话,含键鼠输入、全屏、动态调整分辨率和手动剪贴板传输;密码每次连接时输入,不会保存。
每次终端会话都会记录使用者、服务器、起止时间和客户端 IP。
OpsUp 是共享管理员式的服务器管理工具,而不是多租户授权系统。下面是它实际做到的保护。
需要 Go 1.25+、用于 SQLite/CGO 的 C 编译器、make,以及 Node.js 22.22.2+(或 24.15+)。也可以直接用 Docker。
$ make build $ OPSUP_LISTEN=127.0.0.1:8080 \ OPSUP_DB_PATH=./data/opsup.db \ ./opsup
$ docker build -t opsup . $ docker run -d \ -p 127.0.0.1:8080:8080 \ -v opsup-data:/data opsup
先在本机打开服务并创建管理员,再通过 HTTPS 对外提供访问。
填写主机、用户和密钥,按需选择跳板机,并录入预期的 SHA256 主机指纹。
在终端标签页里打开服务器;窗口缩放与断线重连都已处理好。
| 变量 | 默认值 / 要求 |
|---|---|
OPSUP_DB_PATH | opsup.db,位于可执行文件旁 |
OPSUP_LISTEN | :8080 |
OPSUP_SECRETS_PATH | <数据库路径>.secrets.json,首次生成,权限 0600 |
OPSUP_JWT_SECRET | 未设置时使用持久化的随机密钥;自行设置至少 32 字节 |
OPSUP_ENCRYPTION_KEY | 未设置时使用持久化的随机密钥;自行设置需 64 个十六进制字符 |
Go 后端内嵌 React 前端,部署始终只有一个文件。