2c06329d688cd765f2c25544d817b21d45e1c417
实现 MobaXterm 风格的界面重构,包含会话树、工作区面板和分屏功能。 新增功能: - 左侧会话树支持文件夹分组和展开/折叠 - 工作区垂直分屏(终端 + SFTP) - 可拖拽调整分割比例 - 状态持久化到 localStorage - 顶部工具栏(样式占位) 技术实现: - 新增 sessionTreeStore 和 workspaceStore 状态管理 - 新增 SessionTree/SessionTreeNode 递归组件 - 新增 SplitPane 可拖拽分割组件 - 重构 SftpPanel 为 props 驱动 - 新增 MobaLayout 主布局 - 路由默认重定向到 /moba 依赖更新: - 安装 @vueuse/core 用于拖拽功能 待实现: - Phase 3: 会话树拖拽排序 - Phase 5: 数据迁移 - Phase 6: 快捷键、右键菜单、搜索等优化 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
SSH 管理器
基于 Web 的 SSH 连接管理工具,支持终端与 SFTP 文件传输。技术栈:Vue 3、Spring Boot(JDK 8)、JSch、xterm.js。
功能
- 认证:本地用户登录(JWT)
- 连接管理:SSH 连接的增删改查(密码或私钥)
- Web 终端:通过 WebSocket + xterm.js 实现实时 SSH 终端
- SFTP:文件浏览,支持上传、下载、删除、创建目录
环境要求
- JDK 8+
- Node.js 18+
- Maven 3.6+
快速开始
后端
cd backend
mvn spring-boot:run
后端运行在 http://localhost:48080
默认登录:admin / admin123
前端
cd frontend
npm install
npm run dev
前端运行在 http://localhost:5173(API 与 WebSocket 会代理到后端)
生产构建
# 后端
cd backend && mvn package
# 前端
cd frontend && npm run build
将 frontend/dist 目录内容复制到后端的静态资源目录,或单独部署前端。
项目结构
ssh-manager/
├── backend/ # Spring Boot(JDK 8)
│ └── src/main/java/com/sshmanager/
│ ├── config/ # 安全、WebSocket、CORS
│ ├── controller/
│ ├── service/
│ ├── entity/
│ └── repository/
├── frontend/ # Vue 3 + Vite + Tailwind
│ └── src/
│ ├── views/
│ ├── components/
│ ├── stores/
│ └── api/
└── docs/design-system/ # UI/UX 规范
配置
后端(application.yml)
sshmanager.encryption-key:用于加密连接密码的 Base64 32 字节密钥sshmanager.jwt-secret:JWT 签名密钥spring.datasource.url:H2 数据库路径(默认:./data/sshmanager)
环境变量
SSHMANAGER_ENCRYPTION_KEY:覆盖加密密钥SSHMANAGER_JWT_SECRET:覆盖 JWT 密钥
安全说明
- 连接密码与私钥均以 AES-256-GCM 加密存储
- 所有 API 接口需 JWT 认证
- WebSocket 连接在握手时校验 JWT
- CORS 仅允许前端来源
Description