• SSH-Web 工具之 shellinabox:一款使用 AJAX 的基于 Web 的终端模拟器 安装及使用教程


     本文转载自:

    shellinabox:一款使用 AJAX 的基于 Web 的终端模拟器

    一、shellinabox简介

    通常情况下,我们在访问任何远程服务器时,会使用常见的通信工具如OpenSSH和Putty等。但是,有可能我们在防火墙后面不能使用这些工具访问远程系统,或者防火墙只允许HTTPS流量才能通过。不用担心!即使你在这样的防火墙后面,我们依然有办法来访问你的远程系统。而且,你不需要安装任何类似于OpenSSH或Putty的通讯工具。你只需要有一个支持JavaScript和CSS的现代浏览器,并且你不用安装任何插件或第三方应用软件。

    这个 Shell In A Box,发音是shellinabox,是由Markus Gutschke开发的一款自由开源的基于Web的Ajax的终端模拟器。它使用AJAX技术,通过Web浏览器提供了类似原生的 Shell 的外观和感受。

    这个shellinaboxd守护进程实现了一个Web服务器,能够侦听指定的端口。其Web服务器可以发布一个或多个服务,这些服务显示在用 AJAX Web 应用实现的VT100模拟器中。默认情况下,端口为4200。你可以更改默认端口到任意选择的任意端口号。在你的远程服务器安装shellinabox以后,如果你想从本地系统接入,打开Web浏览器并导航到:http://IP-Address:4200/。输入你的用户名和密码,然后就可以开始使用你远程系统的Shell。看起来很有趣,不是吗?确实 有趣!

    免责声明:

    shellinabox不是SSH客户端或任何安全软件。它仅仅是一个应用程序,能够通过Web浏览器模拟一个远程系统的Shell。同时,它和SSH没有任何关系。这不是可靠的安全地远程控制您的系统的方式。这只是迄今为止最简单的方法之一。无论如何,你都不应该在任何公共网络上运行它。

    二、安装shellinabox

    • 在Debian / Ubuntu系统上:

        shellinabox在默认库是可用的。所以,你可以使用命令来安装它:      

      1. $ sudo apt-get install shellinabox
    • 在RHEL / CentOS系统上:

        首先,使用命令安装EPEL仓库:

      1. # yum install epel-release

        然后,使用命令安装shellinabox:

      1. # yum install shellinabox

        完成!

    三、配置shellinabox

    正如我之前提到的,shellinabox侦听端口默认为4200。你可以将此端口更改为任意数字,以防别人猜到。

    在Debian/Ubuntu系统上shellinabox配置文件的默认位置是/etc/default/shellinabox。在RHEL/CentOS/Fedora上,默认位置在/etc/sysconfig/shellinaboxd

    1. 如果要更改默认端口

    在Debian / Ubuntu:

    1. $ sudo vi /etc/default/shellinabox

    在RHEL / CentOS / Fedora:

    1. # vi /etc/sysconfig/shellinaboxd

    更改你的端口到任意数字。因为我在本地网络上测试它,所以我使用默认值。

    1. # Shell in a box daemon configuration
    2. # For details see shellinaboxd man page
    3. # Basic options
    4. USER=shellinabox
    5. GROUP=shellinabox
    6. CERTDIR=/var/lib/shellinabox
    7. PORT=4200
    8. OPTS="--disable-ssl-menu -s /:LOGIN"
    9. # Additional examples with custom options:
    10. # Fancy configuration with right-click menu choice for black-on-white:
    11. # OPTS="--user-css Normal:+black-on-white.css,Reverse:-white-on-black.css --disable-ssl-menu -s /:LOGIN"
    12. # Simple configuration for running it as an SSH console with SSL disabled:
    13. # OPTS="-t -s /:SSH:host.example.com"

    2. 重启shelinabox服务

    在Debian/Ubuntu/Cenotos:

    1. $ sudo systemctl restart shellinabox

    或者

    1. $ sudo service shellinabox restart

    在RHEL/CentOS系统,运行下面的命令能在每次重启时自动启动shellinaboxd服务

    1. # systemctl enable shellinaboxd

    或者

    1. # chkconfig shellinaboxd on

    如果你正在运行一个防火墙,记得要打开端口4200或任何你指定的端口。

    例如,在RHEL/CentOS系统,你可以如下图所示允许端口。

    1. # firewall-cmd --permanent --add-port=4200/tcp
      # firewall-cmd --reload

    四、使用

    现在,在你的客户端系统,打开Web浏览器并导航到:https://ip-address-of-remote-servers:4200

    注意:如果你改变了端口,请填写修改后的端口。

    你会得到一个证书问题的警告信息。接受该证书并继续。

                                      Privacy error - Google Chrome_001

    输入远程系统的用户名和密码。现在,您就能够从浏览器本身访问远程系统的外壳。

                                        Shell In A Box - Google Chrome_003

    右键点击你浏览器的空白位置。你可以得到一些有很有用的额外菜单选项。

                                        Shell In A Box - Google Chrome_004

    从现在开始,你可以通过本地系统的Web浏览器在你的远程服务器随意操作。

    当你完成工作时,记得输入exit退出。

    当再次连接到远程系统时,单击连接按钮,然后输入远程服务器的用户名和密码。

                                          Shell In A Box - Google Chrome_005

    如果想了解shellinabox更多细节,在你的终端键入下面的命令:

    # man shellinabox
    

    或者

    # shellinaboxd -help
    

    同时,参考shellinabox 在wiki页面的介绍,来了解shellinabox的综合使用细节。

    结论

    正如我之前提到的,如果你在服务器运行在防火墙后面,那么基于web的SSH工具是非常有用的。有许多基于web的SSH工具,但shellinabox是非常简单而有用的工具,可以从的网络上的任何地方,模拟一个远程系统的Shell。因为它是基于浏览器的,所以你可以从任何设备访问您的远程服务器,只要你有一个支持JavaScript和CSS的浏览器。

    就这些啦。祝你今天有个好心情!

    参考链接:


    via: shellinabox – A Web based AJAX Terminal Emulator

    作者:SK 译者:xiaoyu33 校对:wxy

    本文由 LCTT 原创翻译,Linux中国 荣誉推出

    本文永久更新链接地址http://www.linuxidc.com/Linux/2015-08/121865.htm

     附:

    GitHub源码

  • 相关阅读:
    SpringCloudAlibaba笔记01
    移除xlsm格式的excel中的宏密码
    CentOS7安装kairosdb并使用Cassandra作为存储(同一台机器上)
    CentOS7安装cassandra(单机模式)
    go-遍历文件夹及文件夹下文件比较工具总结
    Go学习笔记3-包管理-windows下dep工具的使用
    SpringBoot+cxf发布WebService
    显示GetLastError()的错误描述字符串
    Windows中的对象
    char* 和 wchar_t* 如何互相转换
  • 原文地址:https://www.cnblogs.com/webenh/p/13334236.html
Copyright © 2020-2023  润新知