Skip to content

一个基于Web的现代化SSH客户端,提供高效、安全、易用的远程服务器管理体验

License

Notifications You must be signed in to change notification settings

shan-hee/EasySSH_vue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EasySSH

EasySSH Logo

现代化Web终端 · 高效服务器管理 · 安全远程访问

在线演示核心特性快速开始技术实现部署指南未来规划

version license node Docker Build Docker Pulls

🌐 多语言支持 | Multi-language Support
🇨🇳 中文 | 🇺🇸 English | 📚 文档中心

产品介绍

EasySSH是一款强大的基于Web的SSH终端客户端,为开发者、系统管理员和DevOps团队提供高效、安全、易用的远程服务器管理体验。无需安装额外软件,只需一个浏览器,即可随时随地管理您的所有服务器。

在线演示

EasySSH界面预览

核心特性

🌐 浏览器SSH终端 通过任何现代浏览器访问远程服务器,无需安装额外软件
高性能架构 采用WebSocket实时通信,确保命令响应迅速,支持上千并发连接
🔐 安全凭证管理 所有服务器凭证通过军事级AES-256加密存储,保障数据安全
🔄 会话持久化 支持断线重连和会话恢复,保持工作连续性
📱 响应式设计 完美适配从手机到大屏显示器的各种屏幕尺寸
🎨 多主题支持 丰富的终端主题选择,包括深色模式和护眼模式
📑 多标签管理 在单一界面中并行连接和管理多台服务器
🚀 混合存储引擎 SQLite + node-cache混合存储架构,平衡性能和可靠性
🔧 广泛兼容性 支持bash、ash、dash等多种shell,完美兼容OpenWrt/ImmortalWrt等嵌入式系统
🤖 AI智能助手 集成AI助手功能,支持命令建议、错误分析和智能对话,提升运维效率

使用场景

  • 开发团队: 多人协作管理开发、测试和生产服务器
  • 系统管理员: 集中监控和管理大量服务器
  • DevOps工程师: 在CI/CD流程中快速执行部署和维护操作
  • 远程工作: 随时随地安全地访问工作环境
  • 教育机构: 为学生提供统一的Linux学习环境

快速开始

🐳 Docker 快速启动

# 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

使用方法

  1. 访问 http://localhost:8520
  2. 首次使用:如果系统尚无管理员,登录页面会提示“登录并创建管理员账户”;已有管理员时,直接登录即可
  3. 添加您的第一台服务器
  4. 点击连接按钮,开始远程管理!

技术实现

系统架构

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
Loading

监控架构特性

  • 🔄 分离架构: 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 部署(推荐)

推荐使用 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

Docker部署配置

环境变量:

  • 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 - 让远程服务器管理变得简单高效
由❤️打造

About

一个基于Web的现代化SSH客户端,提供高效、安全、易用的远程服务器管理体验

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published