Files
opsxshell/README.md
T

118 lines
5.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# OpsXShell
简单、便捷、人性化的原生运维终端。主打短路径:连上就能用终端、传文件、开桌面和转发——好用实用,不做审计/审批/堡垒机,也不靠插件才能干基础活。
## 已支持
免费层:
- 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+。
```bash
npm install
npm run dev
```
常用检查与构建:
```bash
npm run acceptance:quick
npm run acceptance:full
./scripts/build.sh v2.1.1 mac-arm64
scripts\build.bat v2.1.1 win-x64
./scripts/release.py v2.1.1 --dry-run
```
`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)
## 许可证
MIT。完整文本见 [LICENSE](./LICENSE)。