chore: 保存工作副本——客户端授权新契约(双端点/验签/令牌/周检)与桌面会话可靠性改进
This commit is contained in:
1 parent
f71eef0eba
commit
ae6093c9b3
163 files changed
+4911
-2494
No files matched your search
@@ -1,117 +1,56 @@
|
||||
# OpsXShell
|
||||
|
||||
简单、便捷、人性化的原生运维终端。主打短路径:连上就能用终端、传文件、开桌面和转发——好用实用,不做审计/审批/堡垒机,也不靠插件才能干基础活。
|
||||
原生运维终端:SSH、SFTP、端口转发、RDP/VNC、串口、本地终端。短路径好用,不做审计/审批/堡垒机。
|
||||
|
||||
## 已支持
|
||||
需要 Node.js 18+、npm 9+、Rust 1.77+。macOS 打包还要 Xcode Command Line Tools。
|
||||
|
||||
免费层:
|
||||
|
||||
- SSH 终端:密码、私钥、SSH Agent 自动尝试、主机指纹校验
|
||||
- 会话管理:分组、标签、快速连接、多标签、终端分屏、命令片段;界面 7 语种(zh-CN / zh-TW / en / ja / ko / vi / ru)
|
||||
- SFTP:双栏、拖拽、断点续传、完整后原子替换、重命名、权限;远程文本编辑(约 2MB 上限)
|
||||
- OpenSSH 配置:导入 `~/.ssh/config` 常用字段(批量清单导入属专业版)
|
||||
- 系统链接:`ssh://user@host:port` 唤起已有或新启动的 OpsXShell,并进入预填充快速连接确认
|
||||
- 本地终端:系统 Shell
|
||||
- 本地安全:AES-256-GCM 加密会话密码、密钥口令和模型 API Key,不保存终端命令或 AI 对话历史
|
||||
|
||||
专业版(应用内升级):
|
||||
|
||||
- 端口转发:本地、远程、动态 SOCKS5;规则与运行实例分离
|
||||
- 连接代理:HTTP CONNECT、SOCKS5
|
||||
- 批量命令与终端广播(不含 RDP / VNC)
|
||||
- 远程桌面:原生 RDP(IronRDP)与 VNC(vnc-rs)
|
||||
- 串口
|
||||
- 批量导入导出主机清单
|
||||
- SSH Agent CLI:OpenAI/Responses/Anthropic 兼容 Provider、new-api 与 Ollama;最多 8 步执行循环,**严格 / 宽松**两级安全模式,五级风险,critical 硬拒绝(Rust 二次校验)
|
||||
|
||||
## 产品边界
|
||||
|
||||
OpsXShell 聚焦「日常远程干活」:SSH、SFTP、代理、转发、远程桌面、串口和多终端工作区。审计、录像、审批等堡垒机能力不在产品范围内——宁可少而顺,也不做成重型一站式平台。
|
||||
|
||||
仍在打磨、不影响「先用起来」的方向:
|
||||
|
||||
- Agent Forwarding、OpenSSH 证书与 FIDO2
|
||||
- 断网重连、休眠恢复和大量标签切换的持续压测
|
||||
- SFTP 内容校验和、显式冲突选择和任务恢复
|
||||
- RDP / VNC 生产级证书校验与更多通道能力
|
||||
- Windows 实机验收、自动更新、代码签名、macOS 公证和崩溃诊断
|
||||
|
||||
## 技术栈
|
||||
|
||||
| 层级 | 技术 |
|
||||
| ---------- | ------------------------------------------------- |
|
||||
| 桌面运行时 | Tauri 2 |
|
||||
| 原生后端 | Rust 2021 |
|
||||
| SSH / SFTP | `ssh2 0.9` / libssh2 |
|
||||
| 远程桌面 | IronRDP / `vnc-rs` |
|
||||
| 本地终端 | `portable-pty 0.9` |
|
||||
| 串口 | `serialport 4.8` |
|
||||
| 前端 | React 18 + TypeScript 5 + Vite 5 |
|
||||
| 状态管理 | Zustand 4.4+ |
|
||||
| 终端 | XTerm.js 5.5+ |
|
||||
| 国际化 | i18next(zh-CN / zh-TW / en / ja / ko / vi / ru) |
|
||||
| 测试 | Vitest + Rust test |
|
||||
|
||||
会话和设置保存在系统应用数据目录的 `opsxshell-data.json`。主密钥固定保存在 `~/.opsxshell/master.key`,Unix 权限为目录 `0700`、文件 `0600`。旧版 typo 路径 `~/.opsxshsell/` 会在启动时自动迁移并保留 `.opsxshsell.bak` 备份。
|
||||
|
||||
## 开发
|
||||
|
||||
环境要求:Node.js 18+、npm 9+、Rust 1.77+。
|
||||
## 本地调试(GUI)
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run dev
|
||||
./run.sh
|
||||
```
|
||||
|
||||
常用检查与构建:
|
||||
会清掉旧的 Vite / 应用进程,缺依赖时自动 `npm install`,再开 Tauri 开发窗。DevTools:`Cmd+Option+I` 或 `F12`。日志:
|
||||
|
||||
```bash
|
||||
tail -f "$HOME/Library/Application Support/opsxshell/logs/opsxshell.log"
|
||||
```
|
||||
|
||||
只要前端、不要原生窗:`npm run dev:ui`(默认 `http://127.0.0.1:1420`)。
|
||||
|
||||
## 测试
|
||||
|
||||
```bash
|
||||
npm run test:patrol # 改功能后优先跑
|
||||
npm run acceptance:quick
|
||||
npm run acceptance:full
|
||||
./scripts/build.sh v2.1.1 mac-arm64
|
||||
scripts\build.bat v2.1.1 win-x64
|
||||
```
|
||||
|
||||
## 打包
|
||||
|
||||
必须在目标系统上打:macOS 包在 Mac 打,Windows 包在 Windows 打。
|
||||
|
||||
```bash
|
||||
./scripts/build.sh # 当前平台;产物在 release/v<版本>/
|
||||
./scripts/build.sh mac-arm64 --quick # 本机重复打包
|
||||
./scripts/macos-notarize.sh # 新 DMG:Apple 公证 + staple
|
||||
```
|
||||
|
||||
Windows:`scripts\build.bat win-x64`
|
||||
|
||||
本机有 gitignore 的 `src-tauri/tauri.signing.conf.json` 时,`build.sh` 会签 Developer ID。没这份配置就是 ad-hoc,别人电脑会 Gatekeeper 拦截。新打的 DMG **必须再公证**。申请证书、导入钥匙串的步骤见 [download/Apple开发者签名.md](./download/Apple开发者签名.md);发版细节见 [docs/release.md](./docs/release.md)。
|
||||
|
||||
Gitee Release(tag 推上去之后):
|
||||
|
||||
```bash
|
||||
./scripts/release.py v2.1.1 --dry-run
|
||||
./scripts/release.py v2.1.1
|
||||
```
|
||||
|
||||
`scripts/build.sh`(macOS/Git Bash)和 `scripts/build.bat`(Windows CMD)会校验版本、运行门禁、构建并验证安装包,最终产物统一复制到 `release/v<版本>/<平台>/` 并生成 `SHA256SUMS.txt`。显式传入新版本会同步所有版本文件,但不会自动创建或推送 Git tag。`scripts/release.py` 在 tag 推送后创建 Gitee Release、上传安装包和校验文件,并核对远程附件;先使用 `--dry-run` 检查待发布文件。平台打包必须在对应系统执行:macOS 在 macOS 构建,Windows x86_64 在 Windows 构建。
|
||||
|
||||
## 目录
|
||||
|
||||
```text
|
||||
src/ React 界面与状态管理
|
||||
src/i18n/ 界面文案(多语言)
|
||||
src/platform/ Tauri 命令和事件适配层
|
||||
shared/types/ 前后端共享 TypeScript 契约
|
||||
src-tauri/ Rust / Tauri 原生后端
|
||||
test/ 前端单元、组件与巡检测试
|
||||
test/patrol/ SSH / SFTP / RDP / VNC 基础巡检
|
||||
scripts/ 启动、验收、构建与发布脚本
|
||||
docs/ 使用 / 架构 / 验收 / 发布文档
|
||||
docs/assets/ 品牌与设计资源
|
||||
```
|
||||
|
||||
## 快捷键
|
||||
|
||||
| 快捷键 | 功能 |
|
||||
| -------------------------- | -------------------- |
|
||||
| `Cmd/Ctrl + N` | 新建会话 |
|
||||
| `Cmd/Ctrl + K` | 快速连接 |
|
||||
| `Cmd/Ctrl + B` | 折叠/展开侧栏 |
|
||||
| `Cmd/Ctrl + D` | 终端分屏 |
|
||||
| `Cmd/Ctrl + W` | 关闭标签 |
|
||||
| `Cmd + Option + I` / `F12` | 开发构建打开调试工具 |
|
||||
|
||||
## 文档
|
||||
|
||||
- [使用指南](docs/user-guide.md)
|
||||
- [架构说明](docs/architecture.md)
|
||||
- [SSH Agent CLI 设计](docs/ai-agent.md)
|
||||
- [测试与验收](docs/testing-acceptance.md)
|
||||
- [发布指南](docs/release.md)
|
||||
- [路线图](ROADMAP.md)
|
||||
- [当前任务](TASKS.md)
|
||||
- [测试计划](TDD_PLAN.md)
|
||||
- [架构](docs/architecture.md) · [验收](docs/testing-acceptance.md) · [发布](docs/release.md)
|
||||
- [路线图](ROADMAP.md) · [当前任务](TASKS.md)
|
||||
|
||||
## 许可证
|
||||
|
||||
MIT。完整文本见 [LICENSE](./LICENSE)。
|
||||
MIT,见 [LICENSE](./LICENSE)。
|
||||
Reference in new issue
Block a user