# opsxshell **Repository Path**: opsx-tools/opsxshell ## Basic Information - **Project Name**: opsxshell - **Description**: ssh&sftp 图形界面远程运维工具 - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-05 - **Last Updated**: 2026-08-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # OpsXShell 简单、便捷、人性化的原生运维终端。主打短路径:连上就能用终端、传文件、开桌面和转发——好用实用,不做审计/审批/堡垒机,也不靠插件才能干基础活。 ## 已支持 - SSH 终端:密码、私钥、SSH Agent 自动尝试、主机指纹校验 - 会话管理:分组、标签、快速连接、多标签、终端分屏;界面 7 语种(zh-CN / zh-TW / en / ja / ko / vi / ru) - 批量命令:选中多个会话执行同一命令,结果仅保留在当前窗口(不含 RDP / VNC) - SFTP:双栏、中间传输箭头、拖拽、断点续传、完整后原子替换、重命名、权限;远程文本编辑(约 2MB 上限,超限/二进制友好提示) - 端口转发:本地、远程、动态 SOCKS5;状态栏「转发」打开抽屉启停;规则可编辑和复制,与运行实例分离;动态默认 `127.0.0.1:1080`,经当前 SSH 服务器出口 IP 访问外网 - 连接代理:HTTP CONNECT、SOCKS5,可选用户名密码 - OpenSSH 配置:导入 `~/.ssh/config` 常用字段;界面支持单跳选择,Rust 后端支持最多 8 跳 - 系统链接:`ssh://user@host:port` 唤起已有或新启动的 OpsXShell,并进入预填充快速连接确认 - 远程桌面:原生 RDP(IronRDP)与 VNC(vnc-rs);剪贴板与共享盘(RDP) - 本地终端与串口:系统 Shell、串口设备与波特率配置 - SSH Agent CLI:OpenAI/Responses/Anthropic 兼容 Provider、new-api 与 Ollama;自然语言驱动最多 8 步的执行→观察循环,三级安全模式、五级风险和破坏性命令硬拒绝 - 本地安全:AES-256-GCM 加密会话密码、密钥口令和模型 API Key,不保存终端命令或 AI 对话历史 ## 产品边界 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/ 品牌与设计资源 license-server/ 授权与结账服务 ``` ## 快捷键 | 快捷键 | 功能 | | -------------------------- | -------------------- | | `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