2026-02-12 14:19:50 +08:00
2026-02-12 13:00:25 +08:00
2026-02-11 15:42:57 +08:00
2026-02-12 14:19:50 +08:00
2026-02-11 15:34:22 +08:00
2026-02-10 15:24:40 +08:00
2026-02-11 15:34:22 +08:00
2026-02-11 15:34:22 +08:00
2026-02-11 15:34:22 +08:00
2026-02-12 11:09:43 +08:00
2026-02-10 13:29:45 +08:00
2026-02-10 13:29:45 +08:00
2026-02-12 14:19:50 +08:00
2026-02-10 13:29:45 +08:00

WebSSH - 在线SSH终端工具

一个基于Web的SSH终端工具,提供完整的Web版SSH客户端体验。

✨ 核心功能

  • 用户认证: 注册、登录、JWT令牌认证
  • 服务器管理: 服务器增删改查、分组管理
  • SSH终端: 基于xterm.js的Web终端,支持密码和私钥认证
  • 数据安全: AES-256加密存储敏感信息

🚀 快速部署

📦 Docker 一键部署(推荐)

方式一:使用官方镜像(推荐用于生产环境)

docker run -d \
  --name webssh-app \
  -p 3000:3000 \
  -e DB_HOST=your-mysql-host \
  -e DB_PORT=3306 \
  -e DB_USER=webssh_user \
  -e DB_PASSWORD=your-db-password \
  -e DB_NAME=webssh \
  -e JWT_SECRET=your-jwt-secret \
  -e ENCRYPTION_KEY=your-32-byte-encryption-key \
  dalaolala/webssh:latest

导入初始化数据请查看 install.sql

最后两个参数相关密钥生成方法:

# 生成32字节JWT密钥(推荐使用强随机字符串)
openssl rand -base64 32

# 生成32字节加密密钥(必须正好32个字符)
openssl rand -hex 16  # 输出32字符的十六进制字符串

方式二:完整部署脚本(包含MySQL)

# 一键部署(包含Docker环境检查、镜像构建、服务启动)
git clone https://github.com/dalaolala/webssh.git
cd webssh
chmod +x deploy.sh
./deploy.sh

# 部署完成后访问:http://localhost:3000

部署特点:

  • 自动构建多阶段Docker镜像
  • 包含MySQL数据库服务,使用 install.sql 进行数据库初始化
  • 自动生成安全的加密密钥(JWT_SECRET和ENCRYPTION_KEY)
  • 健康检查和服务监控
  • 生产环境配置

🛠️ 手动部署

环境要求: Node.js 16+, MySQL 5.7+

# 1. 克隆项目
git clone https://github.com/dalaolala/webssh.git
cd webssh

# 2. 数据库初始化(使用install.sql脚本)
mysql -u root -p < install.sql

# 3. 安装依赖
npm install

# 4. 环境配置
cp backend/.env.example backend/.env
# 编辑 backend/.env 文件,配置数据库连接和密钥

# 5. 启动应用
npm run dev

重要说明:

  • 数据库初始化统一使用 install.sql 脚本
  • ENCRYPTION_KEY 必须是正好32字节的字符串
  • 生产环境请使用强密码生成器创建安全的密钥

生成符合要求的密钥:

# 生成32字节JWT密钥
openssl rand -base64 32

# 生成32字节加密密钥(必须正好32个字符)
openssl rand -hex 16

📁 项目结构

webssh/
├── backend/          # Node.js后端服务
├── frontend/         # Vue3前端应用
├── deploy.sh         # Docker部署脚本
├── docker-compose.yml # 容器编排配置
├── Dockerfile        # 容器构建配置
└── install.sql       # 数据库初始化脚本

🔧 技术栈

前端: Vue 3 + Vite + Element Plus + xterm.js
后端: Node.js + Express + Socket.IO + MySQL
部署: Docker + Docker Compose


详细文档请查看 docs/ 目录 数据库设计请查看 install.sql

🔧 使用指南

首次使用

  1. 访问 http://localhost:3000 注册账号
  2. 登录后进入仪表板
  3. 添加你的第一个SSH服务器
  4. 点击服务器名称开始连接

服务器配置

  • 名称: 服务器显示名称
  • 主机: IP地址或域名
  • 端口: SSH端口(默认22)
  • 用户名: SSH登录用户名
  • 认证方式: 密码认证或私钥认证
  • 分组: 服务器分组(可选)

终端操作

  • 连接: 点击"连接"按钮建立SSH会话
  • 命令输入: 在底部输入框输入命令
  • 快捷键:
    • Ctrl+C: 中断当前命令
    • Ctrl+D: 退出会话
    • Ctrl+L: 清屏
  • 断开: 点击"断开"按钮结束连接

快速连接

  • 不保存服务器信息,直接输入连接参数
  • 适合临时连接或测试使用

🔧 使用指南

首次使用

  1. 访问 http://localhost:5173/register 注册账号
  2. 登录后进入仪表板
  3. 添加你的第一个SSH服务器
  4. 点击服务器名称开始连接

服务器配置

  • 名称: 服务器显示名称
  • 主机: IP地址或域名
  • 端口: SSH端口(默认22)
  • 用户名: SSH登录用户名
  • 认证方式: 密码认证或私钥认证
  • 分组: 服务器分组(可选)

终端操作

  • 连接: 点击"连接"按钮建立SSH会话
  • 命令输入: 在底部输入框输入命令
  • 快捷键:
    • Ctrl+C: 中断当前命令
    • Ctrl+D: 退出会话
    • Ctrl+L: 清屏
  • 断开: 点击"断开"按钮结束连接

快速连接

  • 不保存服务器信息,直接输入连接参数
  • 适合临时连接或测试使用

🔒 安全特性

  • 数据加密: 用户密码使用bcrypt加密,服务器认证信息使用AES-256-GCM加密
  • 认证授权: JWT令牌认证,路由权限控制,用户数据隔离
  • 输入验证: 前后端双重验证,SQL注入防护,XSS攻击防护
  • 传输安全: WebSocket over HTTPS(生产环境)

🐛 故障排除

常见问题

  • 数据库连接失败: 检查MySQL服务状态和用户权限
  • 加密密钥错误: 确保ENCRYPTION_KEY为32字节
  • 端口冲突: 检查3000和5173端口是否被占用
  • 依赖安装失败: 清除npm缓存后重新安装

日志查看:

# 后端日志
cd backend && npm run dev

# 前端日志  
cd frontend && npm run dev

🤝 贡献指南

  1. Fork 项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🙏 致谢


注意: 本项目仍在开发中,部分功能可能不完善。生产环境使用前请充分测试。

S
Description
打开浏览器就能用的webssh——带登录、服务器管理和 SFTP,部署一次,随时随地连接你的服务器。同时也支持桌面版。
https://webssh.666171.xyz
Readme
253 KiB
0 Stars 1 Watchers 0 Forks
Languages
Vue 64.7%
JavaScript 34%
Shell 0.8%
Dockerfile 0.4%