webssh 使用WebSocket通过浏览器连接linux服务器

136次阅读
没有评论

共计 1525 个字符,预计需要花费 4 分钟才能阅读完成。

使用WebSocket通过浏览器连接linux,提供灵活的接口,可直接作为一个服务连接通过cmdb获取信息登陆服务器。基于https://github.com/huashengdun/webssh 二次开发

webssh 使用WebSocket通过浏览器连接linux服务器

python版本

python >=2.7

安装

git clone https://gitee.com/careyjike_173/webssh.git && cd webssh

pip install -r requirements.txt

python main.py

配置

配置文件webssh/conf.py

# 监听地址
listen = '127.0.0.1' 

# 监听端口
port = 8888 

# debug模式
debug = False  

# 日志文件
log_file_prefix = './logs/web_ssh.log'  

# 用户信息,用于其它系统请求认证,格式{"username": "password", "username1": "password1"}
auth = {
    'admin': 'admin'
}

# jwt secret值
secret = 'zzz'

# cmdb接口地址
cmdb_api = 'http://127.0.0.1:8000/cmdb/get/host/info/api/'

# ws进程延迟等待时间
delay = 3

使用说明

  • 直接访问
    • 通过浏览器http://127.0.0.1:8888(按实际配置),填写服务器信息即可登陆
  • API方式
    • 页面需要引用/页面的cssjs文件(也可自己实现)
    • /auth 认证接口, 发送post请求类型为application/json获取token, 返回值格式{"status": "success", "data": "token值", "code": 0}
    • / 获取资产认证并开启ws进程, 发送post请求类型为application/json并将token值携带到header中的Token上请求/获取id。 post data需携带加密信息(服务端会拿着加密信息去CMDB获取服务器认证信息,需自己和CMDB系统协调该值), post data格式{"data": "加密信息"}
    • 发送ws请求/ws?id=xx,需携带ID
js例子
  • 获取认证信息
$.ajax({
  url: 'http://127.0.0.1:8888/auth',
  dataType: 'json',
  contentType: 'application/json',
  type: 'post',
  data: JSON.stringify({"username": "admin", "password": "admin"}),
  success: function (result) {
    if (result.code === 0){
      token = result.data;
      Cookies.set('token', token);
    } else {
      console.log(result);
      layer.msg("获取认证信息错误: "+ result.status)
    }
  },
  error: function () {
    layer.msg('请求错误!', {icon: 5})
  }
});
  • 获取资产认证信息并生成ws进程
$.ajax({
  url: 'http://127.0.0.1:8888/',
  type: 'post',
  data: JSON.stringify(data),
  contentType: "application/json",
  processData: false,
  headers: {
    "Token": token
  },
  success: callback,
  error: function () {
    layer.closeAll('loading');
    layer.msg('请求错误!', {icon: 5})
  }
});
正文完
 
admin
版权声明:本站原创文章,由 admin 2020-03-25发表,共计1525字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码