在线演示 • 核心特性 • 快速开始 • 技术实现 • 部署指南 • 未来规划
🌐 多语言支持 | Multi-language Support
🇨🇳 中文 |
🇺🇸 English |
📚 文档中心
EasySSH是一款强大的基于Web的SSH终端客户端,为开发者、系统管理员和DevOps团队提供高效、安全、易用的远程服务器管理体验。无需安装额外软件,只需一个浏览器,即可随时随地管理您的所有服务器。
- EasySSH在线体验
- 体验账号:
demo@example.com/ 密码:admin
| 🌐 浏览器SSH终端 | 通过任何现代浏览器访问远程服务器,无需安装额外软件 |
| ⚡ 高性能架构 | 采用WebSocket实时通信,确保命令响应迅速,支持上千并发连接 |
| 🔐 安全凭证管理 | 所有服务器凭证通过军事级AES-256加密存储,保障数据安全 |
| 🔄 会话持久化 | 支持断线重连和会话恢复,保持工作连续性 |
| 📱 响应式设计 | 完美适配从手机到大屏显示器的各种屏幕尺寸 |
| 🎨 多主题支持 | 丰富的终端主题选择,包括深色模式和护眼模式 |
| 📑 多标签管理 | 在单一界面中并行连接和管理多台服务器 |
| 🚀 混合存储引擎 | SQLite + node-cache混合存储架构,平衡性能和可靠性 |
| 🔧 广泛兼容性 | 支持bash、ash、dash等多种shell,完美兼容OpenWrt/ImmortalWrt等嵌入式系统 |
| 🤖 AI智能助手 | 集成AI助手功能,支持命令建议、错误分析和智能对话,提升运维效率 |
- 开发团队: 多人协作管理开发、测试和生产服务器
- 系统管理员: 集中监控和管理大量服务器
- DevOps工程师: 在CI/CD流程中快速执行部署和维护操作
- 远程工作: 随时随地安全地访问工作环境
- 教育机构: 为学生提供统一的Linux学习环境
# Docker 快速启动
docker run -d \
--name easyssh \
--restart unless-stopped \
-p 8520:8520 \
-v easyssh-data:/app/server/data \
-v easyssh-logs:/app/server/logs \
shanheee/easyssh:latest访问方式:部署完成后,直接通过服务器的 IP 地址访问
http://<服务器IP>:8520即可打开 EasySSH 界面。
# 克隆仓库
git clone https://github.com/shan-hee/EasySSH.git
cd EasySSH
# 安装依赖(推荐 pnpm,也可使用 npm)
pnpm install
# 或
npm install
# 配置环境
cp .env.example .env
# 编辑.env文件设置环境参数
# 启动前端(Vite)
pnpm dev
# 或
# npm run dev
# 新开一个终端启动后端(Express)
cd server
pnpm install # 或 npm install
pnpm dev
# 或
# npm run dev
- 访问 http://localhost:8520
- 首次使用:如果系统尚无管理员,登录页面会提示“登录并创建管理员账户”;已有管理员时,直接登录即可
- 添加您的第一台服务器
- 点击连接按钮,开始远程管理!
flowchart LR
A[客户端 Vue.js SPA]
B[Nginx 反向代理]
C[Node.js 后端 Express]
subgraph WebSocket 通道
direction TB
WS1[SSH WS /ssh]
WS2[监控 WS /monitor]
WS3[监控客户端 WS /monitor-client]
WS4[AI WS /ai]
end
DB[(SQLite 持久化层)]
CACHE[(监控数据缓存层)]
SSH[SSH 服务器 远程主机]
MCLI[监控客户端/采集器]
A <-->|:8520| B
B <-->|:8000| C
C --> WS1
C --> WS2
C --> WS3
C --> WS4
C --> DB
C --> CACHE
C <--> SSH
MCLI <--> WS3
- 🔄 分离架构: SSH 和监控 WebSocket 完全独立,互不影响
- ⚡ 非阻断连接: HTTP 状态检查不阻断 WebSocket 连接
- 📡 实时推送: 监控数据通过专用 WebSocket 实时传输
- 🛡️ 优雅降级: 监控服务未安装时,SSH 功能正常工作
| 前端 | 后端 | 数据存储 |
|---|---|---|
|
• Vue.js 3 • Pinia • Xterm.js • Element Plus • Vite |
• Node.js • Express • WebSocket • JWT认证 • SSH2 |
• SQLite • node-cache • bcryptjs • crypto-js |
- 主题令牌:所有通用颜色/间距/字号等变量集中在
src/assets/styles/themes/theme.css(文件顶部含简要说明)。 - Modal 变量:所有可调的 Modal 变量(容器/遮罩/标题/内容/页脚/标签栏)已内嵌注释于
src/components/common/Modal.vue的样式块中。 在具体弹窗的容器类(如.user-settings-modal.modal-container、.connection-modal.modal-container)上覆盖相应变量,即可实现差异化样式而不影响其他弹窗。
- 实时通信: WebSocket建立持久连接,确保命令执行响应迅速
- 高速缓存: node-cache减少了70%以上的数据库查询,平均API响应时间降低了150ms
- 安全保障: 所有敏感数据通过AES-256加密,密码使用bcryptjs哈希存储
- 可伸缩性: 分布式架构设计,支持水平扩展
- 多Shell兼容: 监控脚本采用POSIX标准编写,支持bash、ash、dash等多种shell
- 嵌入式系统: 完美支持OpenWrt、ImmortalWrt等路由器系统的监控功能
- 跨平台部署: 支持Linux、macOS、Windows等多种操作系统
- 浏览器兼容: 支持Chrome、Firefox、Safari、Edge等现代浏览器
推荐使用 Docker Compose 进行生产环境部署,便于管理和升级:
# 创建部署目录
mkdir easyssh && cd easyssh
# 下载 docker-compose.yml
wget https://raw.githubusercontent.com/shan-hee/EasySSH/main/docker-compose.yml
# 配置环境变量(可选)或 生成随机密钥(如下)
# 创建 .env 文件设置 JWT_SECRET 和 ENCRYPTION_KEY
cat > .env << EOF
JWT_SECRET=$(openssl rand -base64 32)
ENCRYPTION_KEY=$(openssl rand -base64 32)
EOF
# 启动所有服务
docker compose up -d
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs -f# 进入部署目录
cd easyssh
# 拉取最新镜像
docker compose pull
# 重启服务
docker compose up -d环境变量:
NODE_ENV: 运行环境(development/production)JWT_SECRET: JWT令牌密钥(生产环境必须修改)ENCRYPTION_KEY: 数据加密密钥(生产环境必须修改)
💡 数据持久化说明:所有相关文件都在
easyssh目录中,便于统一管理、备份和迁移。
EasySSH支持一键部署到主流云平台:
- 📂 文件管理器:SFTP 基础能力(列表/创建/删除/重命名/权限),二进制传输通道
- 📡 系统监控:/monitor 与 /monitor-client,前端订阅 + 桥接缓存
- 🤖 AI 智能助手:独立 /ai WebSocket 通道
- 🚀 批量执行与分组治理:并发/节流/失败回退,支持 dry-run
- 🧷 端口转发与 SOCKS 代理:安全开关、会话绑定与日志
- 🔔 告警与阈值:CPU/内存/磁盘/进程,Webhook/邮件通知
- 👥 团队协作与 RBAC:组织/角色/细粒度权限;会话共享(只读旁观/请求控制)
- 📹 会话录制与审计:事件时间线、可导出;哈希链防篡改
- 🔑 WebAuthn/Passkey 登录:设备绑定、备份码与强制 2FA 策略
- 🔌 协议扩展:Telnet、RDP/VNC(经网关/插件化接入)
- 📦 文件增强:断点续传、整目录打包下载、校验和、后台任务与进度上报
- 📱 PWA 与多平台:离线、通知、安装到桌面
- ⚙️ 配置即代码:导入/导出(敏感字段加密)与环境迁移
欢迎贡献代码、提出问题或建议!请查看CONTRIBUTING.md了解如何参与项目。
本项目采用Apache License 2.0开源。
EasySSH - 让远程服务器管理变得简单高效
由❤️打造
由❤️打造
