我一直坚信,做项目需要通过文档来总结。一来可以梳理自己的项目和思路,二来可以备忘,三则可以为有同样需求的朋友提供一些参考。如果一直不进行总结,真的很可能是写了多年的代码,却只有一年的经验。当学习一项新技术时,有时看了很多资料,依旧一知半解,但如果能用自己的方式把这项技术描述出来,它慢慢地开始成为自己的知识,当多次地重复温习并使用它时,它才不会被遗忘,才会真正成为自己的技术。

  browser shell,通俗的说就是用浏览器模拟出secureCRT、putty 等工具的功能,实现远程登录。先来一张图,直观了解一下:

但是既然有了secureCRT、putty这类工具,还要browser shell有什么用呢?

一是项目需求;二是它确实有它的便利,可以不用在浏览器和CRT之间频繁切换,节约时间成本;三是putty等软件不能奏效的时候,比如有可能在防火墙后面不能使用这些工具访问远程系统,或防火墙只允许HTTPS流量才能通过;

解决方案:使用shellinabox;

Shellinabox 是一个基于 web 的终端模拟器,采用 C 语言编写,使用 Ajax 与后端服务通信。它实现了一个 Webserver,默认监听 4200 端口,在支持 Javascript 和 CSS 的浏览器上访问 http://host:4200 即可。并且可以配置 SSL/TLS 证书,使用 https 方式加密通信。它和SSH没有任何关系,也不是可靠安全地远程控制系统的方式。

ubuntu下的安装:

获取deb

wget http://ftp.cn.debian.org/debian/pool/main/s/shellinabox/shellinabox_2.14-1_i386.deb

安装:

sudo dpkg -i shellinabox_2.14-1_i386.deb

配置:

sudo vim /etc/default/shellinabox

修改如下:

[wss@localhost test]$cat /etc/default/shellinabox
# Should shellinaboxd start automatically
SHELLINABOX_DAEMON_START=1

# TCP port that shellinboxd's webserver listens on
SHELLINABOX_PORT=8800

# Parameters that are managed by the system and usually should not need
# changing:
SHELLINABOX_DATADIR=/var/lib/shellinabox
SHELLINABOX_USER=shellinabox
SHELLINABOX_GROUP=shellinabox

# Any optional arguments (e.g. extra service definitions). Make sure
# that that argument is quoted.
#
# Beeps are disabled because of reports of the VLC plugin crashing
# Firefox on Linux/x86_64.
SHELLINABOX_ARGS="--no-beep"
[wss@localhost test]$
 
启动:
shellinaboxd -b -c /tmp -p 8800
 
访问验证:在浏览器输入http://yourServerIp:8800

browser shell的更多相关文章

  1. eclipse easy shell plugin

    svn checkout svn://svn.code.sf.net/p/pluginbox/code/trunk pluginbox-code   Eclipse中Easy Shell插件配置Pow ...

  2. Eclipse中Easy Shell插件配置PowerCmd

    1.了解EasyShell.PowerCMD和基本命令 http://sourceforge.net/projects/pluginbox/ http://www.powercmd.com/ 了解基本 ...

  3. 如何在CentOS/RHEL & Fedora上安装MongoDB 3.2

    MongoDB(名称取自"huMONGOus")是一个有着全面灵活的索引支持和丰富的查询的数据库.MongoDB通过GridFS提供强大的媒体存储.点击这里获取MongoDB的更多 ...

  4. 在SWING里嵌入SWT的组件

    http://zhanghan3366.blog.163.com/blog/static/6966305220110505351568/ ——————————————————————————————— ...

  5. 学会使用Chromium中的LOG

    转自:http://blog.csdn.net/kuerjinjin/article/details/43937345 简介 众所周知chromium项目无比巨大,想去快速的了解,调试并添加自己想要的 ...

  6. Chromium网页Frame Tree创建过程分析

         Chromium在加载一个网页之前,需要在Browser进程创建一个Frame Tree.Browser进程为网页创建了Frame Tree之后,再请求Render进程加载其内容.Frame ...

  7. web调用客户端程序

    背景 最近做一个集成需求,我们是B/S架构的,对方是C/S架构的,对方直接扔过来一个EXE连OCX都没有,让我们调用,也就是说,我们需要通过js程序去调用他们的客户端程序并传入多个参数,当时内心是崩溃 ...

  8. 转: How to Install MongoDB 3.2 on CentOS/RHEL & Fedora (简单易懂)

    from:  http://tecadmin.net/install-mongodb-on-centos-rhel-and-fedora/ MongoDB (named from “huMONGOus ...

  9. PHP Web Shell in browser

    /************************************************************************************* * PHP Web She ...

随机推荐

  1. Session阻塞 读写锁引发的小问题

      引子     我们来看两个ajax方法,先后的问题,会有什么样的结果? Javascript: $(function () { //第一个 $.ajax({ type: "POST&qu ...

  2. Makefile中静态库,动态库的创建和使用以及解压缩命令

    应用层通过操作文件操控硬件 使用制作好的工具链: 刚开始学习时,用一些已经制作好的工具链,使用以下命令解压到gcc-3.4.5-glibc-2.3.6目录 cd /work/tools tar xjf ...

  3. Cosh.2

    没壳 直接拖 一开始  字符长度不对.   所以  输入都超过5   就没什么问题了 发现下面的跳转都是跳到eorr的 那不跳的条件呢 看来他们必须要相等.单步跟踪就会发现eax指向的是我们的Seri ...

  4. Xml 序列化

    1 XML序列化只能序列化对象的公有属性,并且要求对象有一个无参的构造方法,否者无法反序列化. 2 [Serializable]和[NonSerialized]特性对XML序列化无效!所以使用XML序 ...

  5. sql文件批量导入mysql数据库

    有一百多个sql文件肿么破?一行一行地导入数据库肯定是极其愚蠢的做法,但是我差点就这么做了... 网上首先找到的方法是:写一个xxx.sql文件,里边每一行都是source *.sql ...,之后再 ...

  6. [转]Linux 的多线程编程的高效开发经验

    Linux 平台上的多线程程序开发相对应其他平台(比如 Windows)的多线程 API 有一些细微和隐晦的差别.不注意这些 Linux 上的一些开发陷阱,常常会导致程序问题不穷,死锁不断.本文中我们 ...

  7. ZendStudio13 PHP调试环境快速配置

    1.百度ZendStudio13,汉化,破解,注册: 2.安装国产Apache+MySql一键安装环境phpStudy,方便快速  http://www.phpstudy.net/a.php/208. ...

  8. 29 个你必须知道的 Linux 命令

    虽然Linux发行版支持各种各样的饿GUI(graphical user interfaces),但在某些情况下,Linux的命令行接口(bash)仍然是简单快速的.Bash和 Linux Shell ...

  9. MINIX3

    这个系列minix3是好早看的源码  现在都忘记的差不多了 觉得就此扔掉可惜了  今天把他全部放在博客上 1 是想和大家一起讨论下 2 是没事看看 能够加强对一个稳定性系统的理解 加厚

  10. jquery CRUD一个元素class属性

    jquery增加,移除,修改一个html标签的class名字 一个标签可以指定多个class 1.         增加一个class: $(".default").addClas ...