Shell 是 Linux https://www.linuxprobe.com/ 内核应用程序, 是指 "为使用者提供操作界面" 的软件, 也是命令解析器, 它类似于 Windows 操作系统 DOS 下的 cmd.exe 应用程序. 它接收用户命令, 然后调用相应的应用程序, 用户一般管理 Linux 服务器都是习惯用 putty,Xshell,SecureCRT,secure shell 等客户端端工具, 但是使用这些客户端都是需要在本地安装后才能使用, 如果换其它电脑也是需要重新安装, 这样非常使用起来非常麻烦, 所以, 我们今天就来介绍一块非常方便的 shell 客户端工具, 使用系统自带的浏览器来管理 Linux 服务终端, 是一款能随时在任何终端上面管理, 这一款运行在 Linux 下面的工具 shellinabox, 只需要在 Linux 服务器上面安装并配置好 shellinabox.
shellinabox 是由 Markus Gutschke 创建的基于 web 的终端模拟器. 它具有内置的 Shell Web 服务端, 在指定端口上作为基于 Web 的 SSH 客户端运行, 并提示您使用任何支持 Ajax/JavaScript 和 CSS 的浏览器远程访问和控制 Linux Server SSH Shell, 而无需任何其他浏览器插件, 使用非常方便, 不过安装和配置是需要有点点 Linux 基础, 如果觉得自己完全不懂 Linux, 可以建议去购买《Linux 就该这么学》 https://www.linuxprobe.com/ 这本教程, 非常适合初学者入门, 或者去此教程的官网查看详细的资料, 直接在百度输入此书名就可以直接进入官网.
shellinbox 是一款在 Linux 服务器下有一个内建的 Web server 作为基本的 Web SSH client, 允许你通过指定的端口访问 Linux 服务器的 SSH shell, 只要你的浏览器支持 Ajax/JS/CSS 就可以访问, 不过现在主流的操作系统自带的浏览器都支持, shellinabox 是一款开源的轻量级软件, 在安装 shellinabox 之前要确定 Linux 服务端是否安装了 openssl 库; debian 和 Ubuntu 官方还提供有 deb 安装包, 而 CentOS 也有 rpm 包, 也可以通过 yum 源安装, 安装及配置也比较简单, 下面我们来详细的安装和配置 shellinabox.
一, 在 RHEL, CentOS 系统上面安装及配置步骤如下
- # yum install openssl shellinabox
- Loaded plugins: fastestmirror
- Determining fastest mirrors
- epel/x86_64/metalink | 9.2 kB 00:00:00
- * base: mirrors.aliyun.com
- * epel: mirrors.aliyun.com
- * extras: mirrors.aliyun.com
- * updates: mirrors.aliyun.com
- base | 3.6 kB 00:00:00
- epel | 3.2 kB 00:00:00
- extras | 3.4 kB 00:00:00
- updates | 3.4 kB 00:00:00
- (1/6): extras/7/x86_64/primary_db | 156 kB 00:00:00
- (2/6): base/7/x86_64/group_gz | 166 kB 00:00:01
- (3/6): epel/x86_64/updateinfo | 940 kB 00:00:08
- (4/6): updates/7/x86_64/primary_db | 1.3 MB 00:00:10
- (5/6): epel/x86_64/primary | 3.6 MB 00:00:21
- (6/6): base/7/x86_64/primary_db | 6.0 MB 00:00:26
- epel 12745/12745
- Resolving Dependencies
- --> Running transaction check
- ---> Package openssl.x86_64 1:1.0.2k-12.el7 will be updated
- ---> Package openssl.x86_64 1:1.0.2k-16.el7 will be an update
- --> Processing Dependency: openssl-libs(x86-64) = 1:1.0.2k-16.el7 for package: 1:openssl-1.0.2k-16.el7.x86_64
- ---> Package shellinabox.x86_64 0:2.20-5.el7 will be installed
- --> Running transaction check
- ---> Package openssl-libs.x86_64 1:1.0.2k-12.el7 will be updated
- --> Processing Dependency: openssl-libs(x86-64) = 1:1.0.2k-12.el7 for package: 1:openssl-devel-1.0.2k-12.el7.x86_64
- ---> Package openssl-libs.x86_64 1:1.0.2k-16.el7 will be an update
- --> Running transaction check
- ---> Package openssl-devel.x86_64 1:1.0.2k-12.el7 will be updated
- ---> Package openssl-devel.x86_64 1:1.0.2k-16.el7 will be an update
- --> Finished Dependency Resolution
- Dependencies Resolved
- ======================================================================================
- Package Arch Version Repository Size
- ======================================================================================
- Installing:
- shellinabox x86_64 2.20-5.el7 epel 136 k
- Updating:
- openssl x86_64 1:1.0.2k-16.el7 base 493 k
- Updating for dependencies:
- openssl-devel x86_64 1:1.0.2k-16.el7 base 1.5 M
- openssl-libs x86_64 1:1.0.2k-16.el7 base 1.2 M
- Transaction Summary
- ======================================================================================
- Install 1 Package
- Upgrade 1 Package (+2 Dependent packages)
- Total download size: 3.3 M
- Is this ok [y/d/N]:y
- Downloading packages:
- No Presto metadata available for base
- (1/4): openssl-1.0.2k-16.el7.x86_64.rpm | 493 kB 00:00:01
- (2/4): shellinabox-2.20-5.el7.x86_64.rpm | 136 kB 00:00:01
- (3/4): openssl-devel-1.0.2k-16.el7.x86_64.rpm | 1.5 MB 00:00:05
- (4/4): openssl-libs-1.0.2k-16.el7.x86_64.rpm | 1.2 MB 00:00:05
- -----------------------------------------------------------------------------------------------------------------------
- Total 469 kB/s | 3.3 MB 00:00:07
- Running transaction check
- Running transaction test
- Transaction test succeeded
- Running transaction
- Updating : 1:openssl-libs-1.0.2k-16.el7.x86_64 1/7
- Updating : 1:openssl-1.0.2k-16.el7.x86_64 2/7
- Installing : shellinabox-2.20-5.el7.x86_64 3/7
- Updating : 1:openssl-devel-1.0.2k-16.el7.x86_64 4/7
- Cleanup : 1:openssl-devel-1.0.2k-12.el7.x86_64 5/7
- Cleanup : 1:openssl-1.0.2k-12.el7.x86_64 6/7
- Cleanup : 1:openssl-libs-1.0.2k-12.el7.x86_64 7/7
- Verifying : 1:openssl-libs-1.0.2k-16.el7.x86_64 1/7
- Verifying : 1:openssl-devel-1.0.2k-16.el7.x86_64 2/7
- Verifying : shellinabox-2.20-5.el7.x86_64 3/7
- Verifying : 1:openssl-1.0.2k-16.el7.x86_64 4/7
- Verifying : 1:openssl-devel-1.0.2k-12.el7.x86_64 5/7
- Verifying : 1:openssl-1.0.2k-12.el7.x86_64 6/7
- Verifying : 1:openssl-libs-1.0.2k-12.el7.x86_64 7/7
- Installed:
- shellinabox.x86_64 0:2.20-5.el7
- Updated:
- openssl.x86_64 1:1.0.2k-16.el7
- Dependency Updated:
- openssl-devel.x86_64 1:1.0.2k-16.el7 openssl-libs.x86_64 1:1.0.2k-16.el7
- Complete!
二, 配置 shellinaboxd
192.168.3.160 是 SSH 服务器 IP 地址,
- # VIM /etc/sysconfig/shellinaboxd
- # TCP port that shellinboxd's webserver listens on
- PORT=6175
- # specify the IP address of a destination SSH server
- OPTS="-s /:SSH:192.168.3.160" #(https 协议)
- #OPTS="-t -s /:SSH:192.168.3.160" #(http 协议)
- # if you want to restrict access to shellinaboxd from localhost only
- # 下面配置是仅主机访问, 其它主机不能访问
- #OPTS="-s /:SSH:192.168.3.160 --localhost-only"
shellinaboxd 默认端口是: 4200, 我这里修改为 6175.
Shellinaboxd 常用参数使用的帮助手册
- # shellinaboxd --help
- List of command line options:
- -b, --background[=PIDFILE] run in background
- -c, --cert=CERTDIR set certificate dir (default: $PWD)
- --cert-fd=FD set certificate file from fd
- --CSS=FILE attach contents to CSS style sheet
- --CGI[=PORTMIN-PORTMAX] run as CGI
- -d, --debug enable debug mode
- -f, --static-file=URL:FILE serve static file from URL path
- -g, --group=GID switch to this group (default: nobody)
- -h, --help print this message
- --linkify=[none|normal|aggressive] default is "normal"
- --localhost-only only listen on 127.0.0.1
- --no-beep suppress all audio output
- -n, --numeric do not resolve hostnames
- -m, --messages-origin=ORIGIN allow iframe message passing from origin
- --pidfile=PIDFILE publish pid of daemon process
- -p, --port=PORT select a port (default: 4200)
- -s, --service=SERVICE define one or more services
- -t, --disable-ssl disable transparent SSL support
- --disable-ssl-menu disallow changing transport mode
- --disable-utmp-logging disable logging to utmp and wtmp
- -q, --quiet turn off all messages
- --unixdomain-only=PATH:USER:GROUP:CHMOD listen on unix socket
- -u, --user=UID switch to this user (default: nobody)
- --user-CSS=STYLES defines user-selectable CSS options
- -v, --verbose enable logging messages
- --version prints version information
- --disable-peer-check disable peer check on a session
三, 启动, 停止, 自启动服务
- CentOS 6
- # service shellinaboxd start // 启动服务
- # service shellinaboxd stop // 停止服务
- # service shellinaboxd restart // 重启服务
- # chkconfig shellinaboxd on // 自启服务
- CentOS 7
- # systemctl start shellinaboxd.service
- # systemctl stop shellinaboxd.service
- # systemctl restart shellinaboxd.service
- # systemctl enable shellinaboxd.service
强制关闭 Shellinaboxd
查找到 Shellinaboxd 的进程 pid ,kill 即可
# ps -aux|grep shellinaboxd | grep -v grep | awk '{print $1}'
也可在启动时加上 -p 参数, 将进程 pid 保存到指定的文件中, 需要关闭时读取它并进行 kill
四, 查看服务状态
- # netstat -nap | grep shellinabox
- tcp 0 0 0.0.0.0:6175 0.0.0.0:* LISTEN 118916/shellinaboxd
- https://192.168.3.160:6175/
默认 60s 不登录自动断开
登录成功
退出 Web Shell 终端:
来源: http://www.bubuko.com/infodetail-3194075.html