有时候用公共电脑,或者在没有安装 putty、xshell 之类的终端的电脑上访问或展示服务器上的一些资料数据,甚至是在运维平台开发中想要嵌入 WebTerminal 功能,于是找到了这个项目——基于 Web 的 Linux 终端 webSSH。

webSSH 是 Python 语言写的一个基于 tornado 和 paramiko 包的 web 应用,它可以作为一个 ssh 终端连接你的服务器。webSSH 主要特点:

  • 支持 SSH 密码认证,包括空密码;
  • 支持 SSH 公钥认证,包括 DSA RSA ECDSA Ed25519 keys;
  • 支持 Encrypted keys;
  • 支持全屏终端,且终端窗口可调整大小;
  • 自动检测系统默认编码;
  • 适用于 Python 2.7-3.6。

1. 安装

pip install webssh

2. 启动

webssh 安装完成,我们可以通过 wssh 命令进行启动:

$ wssh
[I 180627 11:14:55 settings:67] WarningPolicy
[I 180627 11:14:55 main:33] Listening on 127.0.0.1:8888

wssh 默认启用 localhost 的 8888 端口开启服务,我们也可以通过监听 0.0.0.0 来使用本地的 iP 并指定服务端口:

$ wssh --address='0.0.0.0' --port=8000
[I 180627 11:07:05 settings:67] WarningPolicy
[I 180627 11:07:05 main:33] Listening on 0.0.0.0:8000

这时候,在浏览器打开 http://ip:8000,输入登陆信息,登陆 web 终端:

3. 参数

wssh 的一些主要参数如下:

#配置监听地址与服务端口
wssh --address='0.0.0.0' --port=8000#配置缺少主机密钥策略
wssh --policy=reject#配置日志级别
wssh --logging=debug#配置保存日志到指定文件
wssh --log-file-prefix=main.log#更多参数说明
wssh --help

4. Nginx

wssh 可以使用 Nginx 作为后台代理,以及启用 SSL 访问,参考配置文件:

location / {proxy_pass http://127.0.0.1:8888;proxy_http_version 1.1;proxy_read_timeout 300;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Real-PORT $remote_port;
}
  • 使用 Nginx 作为后台代理,并启用 SSL 访问,可以避免你的 ssh 证书被暴露。此外,你的浏览器和 Web 服务器之间的通信将使用安全的 Websockets 进行加密。
  • 尝试使用 reject policy 作为缺少主机密钥时的策略,以及经过验证的 known_hosts,可以防止中间人的攻击。其思路是,webssh 会依次检查系统主机密钥文件("~/.ssh/known_hosts")和应用程序主机密钥文件("./known_hosts"),如果 ssh 服务器的主机名(hostname)没有被发现或者密钥不匹配,连接将被中止。

5. 参考资料

  • https://www.oschina.net/p/webterminal

基于 Web 的 Linux 终端 WebTerminal相关推荐

  1. 命令行管理 Linux服务器困难?别怕,今天介绍一款基于 Web 的Linux管理神器:Webmin

    对于任何 Linux 初学者来说,从命令行管理和管理 Linux 服务器都是非常困难的,在这种情况下,您可以使用 Webmin 从基于 Web 的界面管理您的 Linux 服务器. Webmin 是一 ...

  2. shellinabox基于web浏览器的终端模拟器

    1. Shellinabox介绍 Shellinabox 是一个利用 Ajax 技术构建的基于 Web 浏览器的远程终端模拟器,也就是说安装了该软件之后,服务器端不需要开启 ssh服务,通过 Web  ...

  3. php基于浏览器的linux终端模拟器,回顾最佳的9款Linux终端模拟器

    原标题:回顾最佳的9款Linux终端模拟器 来自:Linux迷 链接:https://www.linuxmi.com/9-linux-terminal.html Linux终端模拟器是所有人(包括新手 ...

  4. linux 平铺式桌面,Terminix:基于 GTK3 的平铺式 Linux 终端模拟器

    导读 现在,你可以很容易的找到大量的 Linux 终端模拟器,每一个都可以给用户留下深刻的印象.但是,很多时候,我们会很难根据我们的喜好来找到一款心仪的日常使用的终端模拟器.这篇文章中,我们将会推荐一 ...

  5. linux 应用程序 键盘,在基于 Web 的 VNC 应用程序中支持多种键盘布局

    基于 Web 的 KVM 管理工具(比如 Kimchi 和 Ovirt)可帮助用户轻松创建和管理虚拟机 (VM),甚至是从移动设备创建和管理虚拟机.这些工具依靠远程桌面共享技术,比如 虚拟网络计算 ( ...

  6. linux搭建web服务器论文答辩开场白,基于ARM9嵌入式Linux系统Web Server服务器计算机设计与科学专业毕业答辩.ppt...

    基于ARM9嵌入式Linux系统Web Server服务器计算机设计与科学专业毕业答辩 2009-5-31 计算机科学与技术专业 2009届本科生毕业论文答辩 基于ARM9的嵌入式Linux系统的We ...

  7. Webmin--一个用于Linux基于Web的系统管理工具

    Webmin是一个用于Linux系统管理的开源的基于web的系统管理配置工具.有了这个工具的帮助,我们可以管理内部的系统配置,诸如设置用户账户,磁盘配额,像Apache, DNS, PHP, MySQ ...

  8. android终端模拟器 yum,分享|Terminix:一个很赞的基于 GTK3 的平铺式 Linux 终端模拟器...

    现在,你可以很容易的找到大量的 Linux 终端模拟器,每一个都可以给用户留下深刻的印象. 但是,很多时候,我们会很难根据我们的喜好来找到一款心仪的日常使用的终端模拟器.这篇文章中,我们将会推荐一款叫 ...

  9. 设置基于Web的Guacamole(鳄鱼)工具以访问远程Linux / Windows计算机

    作为系统管理员,你会发现自己(现在或将来)的环境下Windows和Linux共存工作. 这不是秘密,一些大公司喜欢(或必须)在Windows机箱和其他Linux服务器上运行他们的一些生产服务. 如果是 ...

最新文章

  1. python【蓝桥杯vip练习题库】ADV-69质因数(数论)
  2. centos mysql 5.6.36_CentOS 6.9 升级MySQL 5.6.36到5.7.18
  3. SQL语言之DQL语言学习(一) 基础查询
  4. hibernate正向生成数据库表以及配置——Teacher.java
  5. 开源Registry项目Harbor源代码结构解析
  6. OD使用教程10 - 调试篇10|解密系列
  7. python3内存分析_调试和分析 - tracemalloc —- 跟踪内存分配 - 《Python 3.7 标准库》 - 书栈网 · BookStack...
  8. 在python中如何判断数组中的数据为空值_缓存穿透问题,开发中真实解决方案
  9. TCP 三次握手 四次挥手
  10. bootstrap treeview 多级联动check/uncheck
  11. 微信小程序对接海康威视摄像头
  12. RK3568平台开发系列讲解(安卓适配篇)Android11旋转屏幕
  13. 如何解决 Android浏览器查看背景图片模糊的问题?
  14. 电路的等效变换(二)
  15. word不能读出html表格,WORD里面表格不能自动跳到下一页解决方案
  16. Diagonal Scaling
  17. 几何画板 linux,用几何画板怎么作函数图像
  18. 成员函数和友原函数和一般函数的区别
  19. 【渝粤题库】陕西师范大学180104市场调查与预测Ⅰ作业(高起专)
  20. 网络管理与运维(SNMP包括理论和实验)

热门文章

  1. 【高并发】在高并发环境下该如何构建应用级缓存?
  2. (万字长文)Spring的核心知识尽揽其中
  3. 微服务治理实践 | 金丝雀发布
  4. 微服务治理实践:服务查询
  5. 大型商业银行数据库连接池选型策略
  6. 有什么好的中小企业企业管理软件?
  7. andriod studio中的显式跳转和隐式跳转
  8. c# dbgrid数据导出到xlsx和ini中实例
  9. c# 实现二进制文件读写、ini文件读写以及一些文件和目录的常用操作,在某些特定情况下会用到,如录波文件要保存.dat
  10. java一个点向着另一个点移动_java – 在线性路径中从一个点移动一个对象