Loading

【Vibe Coding】构建一个基于浏览器的 WebSSH 服务(支持命令录制,针对 HPC 等2C轻量化场景,替代 JumpServer 堡垒机)

背景

最近想在HPC系统中集成一个 WebSSH 功能,以便用户可以不用安装软件实现在浏览器中就进行命令操作。考虑到多用户使用以及最近频发的提权问题,还需要增加一个命令录制功能。

例如 JumpServer 这类堡垒机,通常只面向运维和操作人员,面对的是机器很多的场景;而 HPC 环境下机器固定的可能只有几台反而用户更多,因此用一个比较轻量的实现方式最有价值

原理

OpenSSH 服务实际上支持用户使用证书进行登录,只需要在 sshd_config 中配置一个根证书的公钥,然后利用私钥去签发 SSH 证书,就可以实现不需要密钥或者是传统的 SSH 密钥进行登录,从而大大的减少了用户密码/密钥的管理成本。

# /etc/ssh/sshd_config
TrustedUserCAKeys /etc/ssh/webssh_user_ca.pub

安全性

使用这种方法,只要掌握了根证书,理论上就掌握了服务器,所以根证书一定需要保存好,并考虑定期轮换,每台机器使用不同的根证书

由于证书完全是由我们进行签发的,所以我们直接就可以控制证书的有效期、授权用户等,实践中我们完全不会存储生成的证书,有效期也仅限一个很短的时间(存在内存中,有效期为当前时间-30s和+300s),并且认为只要用一次就过期,下一次生成新的即可

效果演示

1. 在业务系统中只需要私用已经认证过的用户信息签发 ticket 即可

image

2. 连接后的命令录制与回放功能,支持导出为.cast文件,后期可以转为.gif文件

image

posted @ 2026-08-03 17:20  codesucks  阅读(5)  评论(0)    收藏  举报