Files
ssh-manager/README.md

92 lines
2.1 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.
# SSH 管理器
基于 Web 的 SSH 连接管理工具,支持终端与 SFTP 文件传输。技术栈Vue 3、Spring BootJDK 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:8080
默认登录:`admin` / `admin123`
### 前端
```bash
cd frontend
npm install
npm run dev
```
前端运行在 http://localhost:5173API 与 WebSocket 会代理到后端)
### 生产构建
```bash
# 后端
cd backend && mvn package
# 前端
cd frontend && npm run build
```
`frontend/dist` 目录内容复制到后端的静态资源目录,或单独部署前端。
## 项目结构
```
ssh-manager/
├── backend/ # Spring BootJDK 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 仅允许前端来源