本文转载自:

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

    首先,使用命令安装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源码

Shellinabox安装及使用教程的更多相关文章

  1. CentOS7下自定义目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用自定义目录安装mono+jexus教程,使用默认目录请查看使用默认目录安装 ...

  2. 【转】真正从零开始,TensorFlow详细安装入门图文教程!(帮你完成那个最难的从0到1)

    AI这个概念好像突然就火起来了,年初大比分战胜李世石的AlphaGo成功的吸引了大量的关注,但其实看看你的手机上的语音助手,相机上的人脸识别,今日头条上帮你自动筛选出来的新闻,还有各大音乐软件的歌曲& ...

  3. CentOS7下默认目录安装mono+jexus教程

    一.阅读前须知: 1.本文属于安装完Centos7之后的步骤 2.如果还不了解mono,请点击mono 3.本篇主要内容是使用默认目录安装mono+jexus教程,使用自定义目录请查看使用自定义目录安 ...

  4. << CocoaPods安装和使用教程 >>github code4app以及cocoachina 苹果官方文档

    developer.apple.com 英文搜索各个技术的官方介绍文档, 前提是英文过关 cocoachina ios最新新闻, 信息 code4app上有许多组件 http://www.code4a ...

  5. webpack安装配置使用教程详解

    webpack安装配置使用教程详解 www.111cn.net 更新:2015-09-01 编辑:swteen 来源:转载 本文章来为各位详细的介绍一下关于webpack安装配置使用教程吧,这篇文章对 ...

  6. NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者

    NSIS安装制作基础教程[初级篇], 献给对NSIS有兴趣的初学者 作者: raindy 来源:http://bbs.hanzify.org/index.php?showtopic=30029 时间: ...

  7. 安装WordPress详细教程指南

    最近准备自己建一个个人博客,以便分享一些自己工作生活中的一些观点及经验,建博客当然选wordpress,毕竟wordpress是为博客而生的嘛.下边记录一下自己安装WordPress的详细过程指南,亦 ...

  8. 纯windows下制作变色龙引导安装U盘教程

    原创教程:纯windows下制作变色龙引导安装U盘教程 支持Mavericks和Yosemite 支持白苹果 目标:windows下制作带 Chamelon变色龙引导的黑苹果安装U盘,支持PC机引导安 ...

  9. 最详细在Windows安装Xamarin.iOS教程

    最详细在Windows安装Xamarin.iOS教程 来源:http://www.cnblogs.com/llyfe2006/articles/3098280.html 本文展示了如何设立Xamari ...

随机推荐

  1. PHP下的浮点运算不准的解决办法

    首先看一段代码: 首先看一段代码: <?php $a = 0.1; $b = 0.7; var_dump(($a + $b) == 0.8); 打印出来的值居然为 boolean false P ...

  2. Visual Studio 2019 Key

    Visual Studio 2019 Enterprise:BF8Y8-GN2QH-T84XB-QVY3B-RC4DF Visual Studio 2019 Professional:NYWVH-HT ...

  3. 【性能测试】:对WebSphere中间件的监控方式

    1  登录WebSphere控制台 2 选择应用.点击启动和停止来启动和停止应用 3 查看当前活动.点击要查看的项目 4 在开始监测前,先选中服务,点击启动监控将集合状态改为活动的 进入页面后,在页面 ...

  4. 【性能测试】:关于loadrunner11录制Chrome浏览器脚本的方法

    有些web端的程序只能通过chrome访问,如果用lr11录制的话,会抓不到包, 现在教一种方法,可以抓到包的,主体思路就是设置代理,让报文流量绕道走一下 一,在LR中的设置: 从菜单Tools-Re ...

  5. 基于Allwinner的Audio子系统分析(Android-5.1)

    前言 一直想总结下Audio子系统的博客,但是各种原因(主要还是自己懒>_<),一直拖到现在才开始重新整理,期间看过H8(Android-4.4),T3(Android-4.4),A64( ...

  6. 2019.04.04 第二次训练 【ACM International Collegiate Programming Contest, JUST Collegiate Programming Contest (2018)】

    题目链接:https://codeforces.com/gym/101853 A: ✅ B: (二分图匹配) https://blog.csdn.net/qq_41997978/article/det ...

  7. 13.Reflect

    1.概述 Reflect对象与Proxy对象一样,也是 ES6 为了操作对象而提供的新 API.Reflect对象的设计目的有这样几个. (1) 将Object对象的一些明显属于语言内部的方法(比如O ...

  8. [问题解决]gradle编译失败系统找不到指定的文件

    [问题解决]gradle编译失败系统找不到指定的文件 问题描述 Error:C:\Users\diql.gradle\caches\2.14.1\scripts-remapped\settings_9 ...

  9. 【Qt开发】常用控件--QSpinBox和QDoubleSpinBox

    QSpinBox和QDoubleSpinBox 是UI设计常用的控件. QSpinBox可用于显示和输入整数,并可以在显示框中添加前缀或后缀. QDoubleSpinBox可用于显示和输入小数,并可以 ...

  10. 16G的U盘 4G的压缩

    文件系统格式原因,或是你的U盘是扩容盘(就是实际容量和显示的不一样)常用文件系统支持的单个文件大小: FAT16 支持单个文件最大不超过2GB FAT32 支持单个文件最大不超过4GB(有人说实际超过 ...