Files
ssh-manager/README.md
liumangmang 80fc5c8a0f feat: 增强 Transfers 页面文件浏览功能
- 在 SftpFilePickerModal 中添加搜索功能
- 添加显示/隐藏文件切换按钮(参考 SftpView)
- Remote->Many 模式下目标连接列表自动排除源连接
- 全选功能自动排除源连接
- 添加空状态提示信息
- 优化用户体验和交互逻辑
2026-03-12 17:45:07 +08:00

2.1 KiB
Raw Blame History

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+

快速开始

后端

cd backend
mvn spring-boot:run

后端运行在 http://localhost:48080

默认登录:admin / admin123

前端

cd frontend
npm install
npm run dev

前端运行在 http://localhost:5173API 与 WebSocket 会代理到后端)

生产构建

# 后端
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/
└── docs/design-system/  # UI/UX 规范

配置

后端application.yml

  • sshmanager.encryption-key:用于加密连接密码的 Base64 32 字节密钥
  • sshmanager.jwt-secretJWT 签名密钥
  • spring.datasource.urlH2 数据库路径(默认:./data/sshmanager

环境变量

  • SSHMANAGER_ENCRYPTION_KEY:覆盖加密密钥
  • SSHMANAGER_JWT_SECRET:覆盖 JWT 密钥

安全说明

  • 连接密码与私钥均以 AES-256-GCM 加密存储
  • 所有 API 接口需 JWT 认证
  • WebSocket 连接在握手时校验 JWT
  • CORS 仅允许前端来源