# tShellTerminal **Repository Path**: running_tortoise/t-shell-terminal ## Basic Information - **Project Name**: tShellTerminal - **Description**: 一个现代化的 SSH 终端管理工具,类似于 XShell。 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-04 - **Last Updated**: 2026-09-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tShell 一个现代化的 SSH 终端管理工具,类似于 XShell。 ## 功能特性 ### 第一阶段 (MVP) ✅ - [x] SSH 连接(用户名/密码认证) - [x] 终端基本操作(命令执行、UTF-8支持) - [x] 多标签页管理 - [x] 连接管理(保存/编辑/删除连接) - [x] 基本 UI 框架 - [x] 连接分组管理 - [x] SQLite 数据存储 ### 第二阶段 (增强功能) ✅ - [x] 密钥认证(RSA/ED25519 私钥文件) - [x] 密码加密存储(AES-256-GCM) - [x] SFTP 文件管理(双栏浏览器、上传/下载) - [x] 终端主题/配色方案(8种主题可选) - [x] 终端分屏功能 - [x] 设置面板(字体、字号、主题配置) ### 第三阶段 (高级功能) ✅ - [x] 代理/跳板机支持(ProxyJump) - [x] 会话日志(自动保存/导出) - [x] 批量执行命令 - [x] 断线自动重连 - [x] 命令历史记录 - [x] 快捷命令管理 ## 技术栈 - **前端**: Vue 3 + TypeScript + Tailwind CSS - **桌面框架**: Electron 29 - **终端模拟器**: xterm.js 5 - **SSH**: ssh2 - **数据库**: SQLite (better-sqlite3) - **状态管理**: Pinia - **路由**: Vue Router 4 ## 主题预览 支持 8 种终端配色方案: - Tokyo Night (默认) - Dracula - Monokai - Nord - One Dark - Gruvbox Dark - Solarized Dark - Catppuccin Mocha ## 开发环境 ### 系统要求 - Node.js >= 18 - npm >= 9 ### 安装依赖 ```bash cd tShell npm install ``` ### 开发模式 启动 Vite 开发服务器(仅前端预览): ```bash npm run dev ``` 启动 Electron 开发模式: ```bash npm run electron:dev ``` ### 构建 ```bash npm run electron:build ``` ## 项目结构 ``` tShell/ ├── src/ │ ├── main/ # Electron 主进程 │ │ ├── index.ts # 主进程入口 │ │ ├── preload.ts # 预加载脚本 │ │ ├── ssh-manager.ts # SSH 连接管理 │ │ ├── sftp-manager.ts # SFTP 文件管理 │ │ ├── database.ts # SQLite 数据库 │ │ └── crypto.ts # 加密工具 │ ├── renderer/ # Vue 渲染进程 │ │ ├── components/ # Vue 组件 │ │ │ ├── TitleBar.vue │ │ │ ├── Sidebar.vue │ │ │ ├── TabBar.vue │ │ │ ├── TerminalContainer.vue │ │ │ ├── WelcomeView.vue │ │ │ ├── ConnectionModal.vue │ │ │ ├── SettingsModal.vue │ │ │ └── SftpPanel.vue │ │ ├── views/ # 页面视图 │ │ ├── stores/ # Pinia 状态管理 │ │ │ ├── connection.ts │ │ │ ├── tab.ts │ │ │ ├── ui.ts │ │ │ └── settings.ts │ │ ├── styles/ # CSS 样式 │ │ └── router/ # Vue Router │ └── shared/ # 共享类型和工具 │ ├── types.ts # TypeScript 类型定义 │ └── themes.ts # 终端主题配置 ├── public/ # 静态资源 ├── dist/ # 编译输出 └── release/ # 打包输出 ``` ## 快捷键 - `Ctrl + N` - 新建连接 - `Ctrl + T` - 新建标签 - `Ctrl + W` - 关闭当前标签 - `Ctrl + Tab` - 切换标签 ## 安全特性 - 所有密码和私钥使用 AES-256-GCM 加密存储 - 密钥派生使用 PBKDF2 算法(100,000 次迭代) - 支持私钥文件认证,避免密码明文传输 ## 许可证 MIT