基于Web的Terminal终端技术

2017年07月30日 shenbowei

相关原理

关键词:WebSocket; SSH; Ajax; Docker

基于Webterminal终端技术主要解决的问题包括:

  • 一定程度上取代xshellsecureRTputtyssh终端,方便运维。
  • 一定程度上替代运维堡垒机,具备对运维人员的身份认证、对运维操作的访问控制和审计等功能。
  • 方便使用,不受电脑环境影响,甚至可以在移动端使用。

针对下面找到的相关项目,可以总结出两种典型的设计思路:

  1. 浏览器直接访问每台远程服务器

    go-webconsole项目为例,其数据流向大概为:

    浏览器<------>WebSocket------>SSH------>Linux OS
    

    浏览器直接连接远程服务器,建立WebSocket连接,将相关认证信息和执行指令通过WebSocket协议传递到服务器端执行,并接收返回的执行结果。

  2. 浏览器统一访问一台远程主机,该远程主机连接需要控制的所有远程服务器

    wts
    wts架构图

    相比于第一种直接访问远程服务器,这种架构的优势在于安全限制,一般不直接登陆远程服务器,需要跳板机作为中转,可以在中间做好权限控制等功能。

    wts-monit项目为例,其分为两部分,其中Monitor(wts-monit)用于Web端输入以及管理remote clients, 客户端模块(wts-node)用于处理monit发来的指令。Monitor基于Koa启动一个WebServer,再使用WebSocket与前端实时互推数据。 monitremote client之间建立TCP长连接,client端掉线后会自动重连。

相关项目

参考文献

WTS:基于Web的Terminal控制台

Wssh:浏览器内访问 Linux 终端

开源web终端ssh解决方案

web-console

wts-monit

wts-node

wssh

KeyBox

go-webconsole

GateOne


评论