# 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+ ## 快速开始 ### 后端 ```bash cd backend mvn spring-boot:run ``` 后端运行在 http://localhost:48080 默认登录:`admin` / `admin123` ### 前端 ```bash cd frontend npm install npm run dev ``` 前端运行在 http://localhost:5173(API 与 WebSocket 会代理到后端) ### 生产构建 ```bash # 后端 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/ └── 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 仅允许前端来源