shellinbox有一个内建的web server作为基本的web ssh client,允许你通过指定的端口访问linux服务器的ssh shell,只要你的浏览器支持AJAX/JS/CSS就可以访问,不需要额外的浏览器插件,十分的简单操作,软件轻量级,不过服务端需要openssl支持,debian和ubuntu官方还提供有deb,centos也有rpm包。
shellinabox是一款安装在远程linux端的软件,可以理解成一个服务器,安装后可以通过任何浏览器来访问操作远程linux主机。
 
查看linux系统版本信息:(Oracle Linux、Centos Linux、Redhat Linux、Debian、Ubuntu)
 cat /etc/issue 
 
安装shellinabox
  centos 6下安装shellinabox需要openssl的支持,简单的安装命令如下:
  [root@localhost centos]# yum install openssl shellinabox
  部分系统可能找不到shellinabox包,可手动下载rpm包安装
  下载地址
  下载rpm包(从上面给的下载地址中找到自己需要版本的下载的地址):
  wget http://dl.fedoraproject.org/pub/epel/6/x86_64/Packages/s/shellinabox-2.20-5.el6.x86_64.rpm
  rpm安装:
  [root@localhost centos]# yum install -y shellinabox-2.20-5.el6.x86_64.rpm
  rpm方式查看安装了哪些文件及安装位置命令:
  rpm -ql shellinabox
  无论哪种安装方式,安装后可编辑/etc/sysconfig/shellinaboxd配置文件来更改端口,默认是4200端口,其它配置如不了解可不更改,本文中只是简单更改端口号为4993
 

二、安装shellinabox

  • 在Debian / Ubuntu系统上:

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

    1. $ sudo apt-get install shellinabox

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

    1. # yum install epel-release

    然后,使用命令安装shellinabox:

    1. # yum install shellinabox

    完成!

二 修改配置

OPTS="--disable-ssl --localhost-only --user-css Normal:+white-on-black.css -s /admin:LOGIN"

三 重启服务

2. 重启shelinabox服务

在Debian/Ubuntu/Cenotos:

    $ sudo systemctl restart shellinabox

或者

    $ sudo service shellinabox restart

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

    # systemctl enable shellinaboxd

或者

    # chkconfig shellinaboxd on
service shellinaboxd restart

 

4 # Basic options
5 USER=shellinabox
6 GROUP=shellinabox
7 CERTDIR=/var/lib/shellinabox
8 PORT=4993
9 OPT="--disable-ssl-menu -s /:LOGIN"
  启动服务:service shellinaboxd start ,浏览器输入:https://本机ip:4993访问即可
  外网访问问题:部分用户本地浏览器可以访问,远程无法访问,可能是端口被防火墙屏蔽了,解决方案为,编辑/etc/sysconfig/iptables文件,加入如下的第10行:
7 -A INPUT -p icmp -j ACCEPT
8 -A INPUT -i lo -j ACCEPT
9 -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
10 -A INPUT -p tcp -m state --state NEW -m tcp --dport 4993 -j ACCEPT
 
注意:新加入的行需要紧挨着放在22号端口行下面,终端使用iptables命令更改发现可能出现新加入行放在倒数第二行,还是会造成防火墙失效,远程无法访问
  重启iptables服务:service iptables restart
  好了现在可以通过浏览器访问Linux主机了,浏览器报ssl证书错误,直接跳过即可
  注意:shellinabox默认好像不允许使用root用户登录,新建一个普通用户登陆后切换身份即可
 

2.修改完保存退出,重启网卡服务

service iptables restart

3.查看端口开放信息

service iptables status
 
 
 
 

查看是否启动

$ sudo netstat -nap | grep shellinabox

or

# netstat -nap | grep shellinabox
tcp 0 0 0.0.0.0:6175 0.0.0.0:* LISTEN 12274/shellinaboxd

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

  1. # systemctl enable shellinaboxd

或者

  1. # chkconfig shellinaboxd on
 

当我们采用root用户登录时,登录失败,普通用户登录是没有问题的。

先以普通用户登录,然后su到root用户。其他的工作就和SSH登录是一样的了。

修改配置文件etc/sysconfig/shellinaboxd  中OPTS节点

OPTS="--user-css Normal:+white-on-black.css --disable-ssl-menu -s /:LOGIN"

让背景色是黑色

保存配置 重启

chkconfig shellinaboxd on
sudo service shellinaboxd restart

修改shellinabox的配置

在Debian/Ubuntu系统上shellinabox配置文件的默认位置是/etc/default/shellinabox。在RHEL/CentOS/Fedora上,默认位置在/etc/sysconfig/shellinaboxd。
如果要更改默认端口,
在Debian / Ubuntu:
$ sudo vi /etc/default/shellinabox
在RHEL和CentOS / Fedora:
# vi /etc/sysconfig/shellinaboxd
更改你的端口到任意数量。因为我在本地网络上测试它,所以我使用默认值。

重启shelinabox服务。
在Debian/Ubuntu:
$ sudo systemctl restart shellinabox
或者
$ sudo service shellinabox restart
重启shelinabox服务。
在RHEL/CentOS系统,运行下面的命令能在每次重启时自动启动shellinaboxd服务
# systemctl enable shellinaboxd
或者
# chkconfig shellinaboxd on
现在,去你的客户端系统,打开Web浏览器并导航到:https://ip-address-of-remote-servers:4200
如果你改变了端口,请填写修改后的端口。
7
你会得到一个证书问题的警告信息。接受该证书并继续。
8
输入远程系统的用户名和密码。现在,您就能够从浏览器本身访问远程系统的外壳。从现在开始,你可以通过本地系统的Web浏览器在你的远程服务器随意操作。
9
当你完成时,记得点击退出。

参考

2 http://www.coooz.com/archives/530
3 http://www.bubuko.com/infodetail-2261104.html

Web终端之使用shellinabox在浏览器进行ssh登录的更多相关文章

  1. java web实现同一账号在不同浏览器不能同时登录

    网上看了很多方法,个人也看了,自己也总结了几个比较常用的: 前提都是用session监听器,对session的创建与销毁进行监听 一.在用户登录时保存该用户的状态有这几种保存方式: 1.保存到内存中( ...

  2. jumpserver堡垒机web终端支持复制粘贴功能

    公司最近内部搭建了一个jumpserver堡垒机,但是web终端连接Windows时候没法复制粘贴文字文本 然后找了一下jumpserver官方说明没找到相应的说明,但是知道是guacamole这个组 ...

  3. 支持多用户web终端实现及安全保障(nodejs)

    背景 笔者近期从事在线IDE工作的开发,作为本地IDE普遍拥有的功能,terminal(命令行)对项目的git操作以及文件操作有着非常强大的支持.而之前没有web伪终端的情况下,仅仅提供已封装好的gi ...

  4. 在局域网内部实现远程web终端服务

    在局域网内部实现远程web终端服务 前言 如题,本文主要介绍了在局域网内部实现访问web终端服务功能. 实验环境 如下图所示,实验环境由三个部分组成:分别由局域网内部客户端.重定向服务器.以及两台提供 ...

  5. 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 ...

  6. Web终端SSH功能

    http://www.laozuo.org/10703.html------ CentOS安装配置GateOne实现Web终端SSH功能

  7. Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术——不就是chrome OS吗?

    什么是Progressive Web App? Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术,由Google实现,让浏览器打开的网址像APP一样运行 ...

  8. Web应用多账号系统设计及微信扫码登录实现

    Web应用多账号系统设计及微信扫码登录实现 1   前言概述 公司对功能测试,性能测试,安全测试等等都做了比较好的自动化后,急需要一个MIS系统来统一管理这些结果及报表. 此MIS系统特点如下: 仅内 ...

  9. 终端ssh登录mac用shell打包ipa报错:replacing existing signature

    终端ssh登录mac用shell打包ipa报错:replacing existing signature 报错原因:login.keychain被锁定,ssh登录的没有访问权限 解决方法:终端敲入 s ...

随机推荐

  1. 牛客多校第六场C

    一个数很大,并不能预处理,所以要进行公式变换,存前一个的值就好 #include <bits/stdc++.h> using namespace std; typedef long lon ...

  2. JDBC 学习笔记(十二)—— DataSource

    在 JDBC 的实现过程中,最消耗资源的从来不是执行 SQL 之类的过程,而是获取-释放 数据库连接 Connection 的过程. 之前通过 DriverManager 获得的数据库连接对象,每一个 ...

  3. 编码风格——linux内核开发的coding style

    总结linux内核开发的coding style, 便于以后写代码时参考. 下面只是罗列一些规则, 具体说明可以参考: 内核源码(Documentation/CodingStyle) 01 - 缩进 ...

  4. webpack简单使用

    1 首先npm init 建立package.json文件  npm init 2 然后全局安装webpack                      npm install webpack -g ...

  5. 【11】vue router 之导航钩子

    导航钩子 vue-router 提供的导航钩子主要用来拦截导航,让它完成跳转或取消.有多种方式可以在路由导航发生时执行钩子:全局的, 单个路由独享的, 或者组件级的.http://www.jiansh ...

  6. OpenJudge 2727 仙岛求药

    总时间限制:  1000ms 内存限制:  65536kB 描述 少年李逍遥的婶婶病了,王小虎介绍他去一趟仙灵岛,向仙女姐姐要仙丹救婶婶.叛逆但孝顺的李逍遥闯进了仙灵岛,克服了千险万难来到岛的中心,发 ...

  7. 【UVA11859】Division Game(SG函数,Nim游戏)

    题意:给定一个n*m的矩阵,两个游戏者轮流操作. 每次可以选一行中的1个或多个大于1的整数,把它们中的每个数都变成它的某个真因子,不能操作的输. 问先手能否获胜 n,m<=50,2<=a[ ...

  8. 只有mdf文件而没有ldf文件修复方法

    原文发布时间为:2010-09-16 -- 来源于本人的百度文章 [由搬家工具导入] 只有mdf文件而没有ldf文件修复log文件或者重新生成一个log文件的方法 EXEC   sp_attach_s ...

  9. Java中的内存机制及管理

    1. Java根据虚拟机以及平台的版本不同而在内存中开辟不同大小的内存,通常不会关注这个大小. 2. 程序中的对象存储在内存的堆(heap)中 3. 程序中的方法和局部变量存储在内存的栈(Stack) ...

  10. 【剑指offer】二维数组中的查找☆

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数.     自己的思路实在 ...