前言
首先介绍一下 OneTerm, 是一个基于 Go + Vue 开发的 Web 端开源堡垒机, 基于4A理念,即认证(Authen)、授权(Authorize)、账号(Account)、审计(Audit)设计开发。
在现代运维体系中, 堡垒机是一道重要的安全防护。它位于内外网之间,作为所有访问的唯一入口,负责对访问行为进行统一认证、授权和审计。堡垒机不仅能有效防止未经授权的访问,还能对运维操作进行全程记录和回溯,是保障信息系统安全合规的关键角色。
堡垒机的出现,解决了传统运维中账号分散、权限混乱、操作不可追溯等问题。通过堡垒机,可以实现对核心资产的集中管控,提升安全性和运维效率。
OneTerm 之前一直是只有堡垒机的核心功能, 较为单一。然后最近几个月我们将主要精力投入到了这个项目的开发, 从最初收集了不少朋友的建议和社群的反馈, 然后经历大概三个月断断续续的打磨和重构, 迭代了几个版本, 目前不仅功能完备, 交互体验和性能皆有提升

项目地址: github.com/veops/onete...
如果体验后觉得不错, 欢迎点一个 Star ⭐️. Star 就是对我们最大的鼓励. Thanks!
接下来我介绍一下主要更新的功能
功能更新
工作台
- 工作台整体UI界面升级, 调整了较多交互细节, 无论是状态的刷新还是各个资产和终端的实时提示, 满足用户更好的操作
- 增加了侧边工具栏, 方便快捷操作, 并新支持了以下辅助功能
- 全屏切换: 一键切换工作台为全屏模式,专注当前页面内容
- 最近会话: 展示了当前用户最近会话登录信息,支持直接登录和切换账号登录
- 批量执行: 支持通过选择多个资产进行命令批量执行, 提升运维效率
- 显示设置: 自定义终端和远程桌面显示设置
- 主题设置: 内置 100+ 终端主题, 一键切换
- 快捷命令 : 可在
系统设置 - 快捷命令
页面预设常用命令,一键执行,减少重复输入 - 文件管理: 针对 SSH 与 RDP 协议提供可视化文件管理功能
- 剪贴板: 便捷管理远程桌面会话内外内容复制与粘贴
- 远程桌面分辨率设置: 提供灵活的分辨率自定义配置,适配不同屏幕尺寸和使用需求
- 资产分享: 快速创建当前资产临时连接, 用于临时访问

多协议支持
新增 Database 和 Web 协议,现已支持:
协议类型 | 认证方式 | 会话录制 | 文件传输 | 多用户支持 |
---|---|---|---|---|
SSH | 密码/密钥 | ✅ | ✅ | ✅ |
RDP | 密码 | ✅ | ✅ | ✅ |
VNC | 密码 | ✅ | ❌ | ✅ |
Telnet | 密码 | ✅ | ✅ | ✅ |
Redis | 密码 | ✅ | ❌ | ✅ |
MySQL | 密码 | ✅ | ❌ | ✅ |
MongoDB | 密码 | ✅ | ❌ | ✅ |
PostgreSQL | 密码 | ✅ | ❌ | ✅ |
HTTP / HTTPS | 密码 | ❌ | ✅ | ✅ |
访问控制重构
- 单独重构设计了访问控制系统, 现支持节点, 资产, 帐号三个维度, 提供六种操作权限(连接、分享、上传、下载、复制、粘贴), 结合时间模版(多时区多时间段), 命令模版, IP白名单等安全策略, 满足不同场景需求
- 新增
资源管控 - 访问控制
模块, 增加访问授权, 命令拦截, 访问时段三个子页面
访问授权
用于集中管理所有节点、资产及账号的访问权限, 用户可以在此页面进行详细的批量授权配置,也可在 资源管控 - 资产管理
或 资源管控 - 帐号管理
页面进行快捷授权配置, 无论哪种配置方式, 所有授权数据都会在此页面统一展示

命令拦截
- 配置命令拦截规则,支持单条命令和命令模板的灵活配置
- 当用户在终端执行高危或敏感命令时,系统可根据配置规则自动阻断执行,有效防止误操作与风险行为

访问时段
统一管理访问授权所需的时间模版, 支持多时区多时间段灵活配置

系统设置
- 新增系统设置模块, 支持以下系统默认配置
- 我的公钥: 用于配置命令终端登录堡垒机SSH服务时的免密认证公钥
- 快捷命令: 预设常用命令,用户在终端操作或批量执行时可一键调用
- 终端显示: 用于配置终端界面的展示效果,包括字体样式、配色主题、分辨率等,满足不同用户的操作习惯与视觉偏好
- 访问控制: 设置默认访问控制配置
- 存储配置: 目前用于配置会话录像的存储方式,便于定期清理、归档及路径管理
- tip: 会话录像是所有在 OneTerm 中进行的会话都会被记录下来, 方便后面播放回放. 谁在何时哪台服务器上执行什么命令和进行什么操作, 都会记录

总结
除了上面更新的功能外, 还有性能优化和代码重构等细节就不叙述了, 可以查看最近的 CHANGELOG
如果你有任何问题和建议,无论是功能上的,还是文档、交互体验方面的,欢迎随时提出来,或者直接联系我!让我们一起把这个项目做大做强!