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在默认库是可用的。所以,你可以使用命令来安装它:
$ sudo apt-get install shellinabox
在RHEL / CentOS系统上:
首先,使用命令安装EPEL仓库:
# yum install epel-release
然后,使用命令安装shellinabox:
# yum install shellinabox
完成!
配置shellinabox
正如我之前提到的,shellinabox侦听端口默认为4200。你可以将此端口更改为任意数字,以防别人猜到。
在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
更改你的端口到任意数字。因为我在本地网络上测试它,所以我使用默认值。
# Shell in a box daemon configuration
# For details see shellinaboxd man page
# Basic options
USER=shellinabox
GROUP=shellinabox
CERTDIR=/var/lib/shellinabox
PORT=4200
OPTS="--disable-ssl-menu -s /:LOGIN"
# Additional examples with custom options:
# Fancy configuration with right-click menu choice for black-on-white:
# OPTS="--user-css Normal:+black-on-white.css,Reverse:-white-on-black.css --disable-ssl-menu -s /:LOGIN"
# Simple configuration for running it as an SSH console with SSL disabled:
# OPTS="-t -s /:SSH:host.example.com"
重启shelinabox服务。
在Debian/Ubuntu:
$ sudo systemctl restart shellinabox
或者
$ sudo service shellinabox restart
在RHEL/CentOS系统,运行下面的命令能在每次重启时自动启动shellinaboxd服务
# systemctl enable shellinaboxd
或者
# chkconfig shellinaboxd on
如果你正在运行一个防火墙,记得要打开端口4200或任何你指定的端口。
例如,在RHEL/CentOS系统,你可以如下图所示允许端口。
# 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的浏览器。
http://www.linuxidc.com/Linux/2015-08/121865.htm
相关推荐
Python-WebSSH是一个开源项目,它提供了一个基于Web的界面,用户可以通过浏览器直接访问并管理远程SSH服务器,无需安装任何桌面SSH客户端。这个工具对于需要在不同设备上远程操作服务器的开发者或者系统管理员来说...
在本项目中,"Node.js-WebSSH2基于Web的SSH2客户端使用xterm.js、socket.io和ssh2实现",我们关注的是构建一个在浏览器环境中运行的SSH2客户端。这个客户端允许用户通过Web界面安全地连接到远程服务器执行命令,从而...
WebSSH通常会使用这些库来处理SSH连接的部分,同时结合WebSocket技术实现实时交互,使得用户在浏览器中能够即时看到命令的执行结果。 三、WebSocket的使用 WebSocket是一种在客户端和服务器之间建立持久连接的协议...
7. `README.md`:项目说明文档,介绍如何安装、配置和使用WebSSH。 8. `LICENSE`:项目授权文件,声明WebSSH的开源许可证类型。 9. `.gitignore` 和 `.gitattributes`:Git版本控制相关的配置文件。 10. `package....
要开始使用WebSSH2,你需要先解压此文件,然后按照README或其他相关文档的指示进行安装和配置。这可能包括安装依赖、运行服务器和配置SSH连接参数。完成这些步骤后,你将能够在浏览器中启动WebSSH2,并通过它安全地...
博文链接中的内容可能涉及了作者在实现或使用WebSSH过程中的经验和技巧,以及可能遇到的问题与解决方案。 【标签】:“源码”和“工具” 这表明WebSSH项目可能是开源的,允许用户查看、学习甚至修改其源代码。作为...
通过gateone的安装实现的web端的ssh远程连接linux技术
【Go-go版本webssh】是一种基于Go语言实现的Web SSH服务,它允许用户通过Web界面安全地连接到远程服务器进行SSH操作。Go语言以其高效、简洁的语法和强大的并发处理能力,成为构建此类网络应用的理想选择。WebSSH使得...
本项目的Blog:使用纯Java实现一个WebSSH项目 注意: 由于前端代码中没有指定终端的信息 所以需要各位自己输入这些信息,位置在webssh.html中 openTerminal( { /*operate:'connect', host: '',//IP port: '',...
WebSSH2是一个基于Web的SSH2客户端,它允许用户通过浏览器访问远程服务器并进行命令行操作,无需在本地安装SSH客户端。这个项目通常用于提供安全的远程终端访问,特别是对于那些需要频繁在不同设备或环境下登录...
【标题】"WEB SSH框架搭建"涉及的主要知识点是基于Java Web的三大框架——Struts、Spring和Hibernate的集成与应用。这些框架是企业级Java开发中的基石,它们各自解决了一个特定的问题领域,协同工作可以构建出高效、...
【标题】:基于Web SSH技术的Linux远程桌面的原理与实现 【摘要】:随着大数据和人工智能的发展,需要管理各种虚拟机进行实验。基于Web SSH技术的Linux远程桌面解决方案应运而生,它提升了操作系统的易用性。文章介绍...
在IT行业中,Linux、Java、Web、SSH以及远程工具是至关重要的组成部分,它们构成了许多企业级应用的基础架构。下面将详细解析这些知识点及其相互关系。 首先,Linux是一种开源的操作系统,广泛应用于服务器环境,以...
1. **README.md**: 这是一个Markdown格式的文件,提供了关于WebSSH项目的基本信息,包括安装指南、配置说明和使用示例。 2. **LICENSE**: 该项目的授权协议文件,描述了你可以如何使用、修改和分发WebSSH的源代码。...
websshdocker离线导入安装 有些应用场景需要离线安装webssh,没网络的情况下安装webssh实在太难了!! 我们整理一种新的方法,可以直接用docker导入的方式去运行。...再也不用担心离线情况下去安装使用webssh了
Linux 中 SSH 的安装与使用 Linux 中 SSH 的安装与使用是一种远程登录和文件传输的安全协议,整个过程包括安装、配置和使用三个部分。 一、安装 SSH 在 Linux 4 版本中,SSH 已经默认安装上了,默认版本为 SSH2.1...
1.docker build . 2. docker run -d --privileged --name webssh1 -p 6178:80 ascs/webssh:alpine-3.9 然后再浏览器访问: http://host地址:6178
WebSSH2 使用ssh2,socket.io,xterm.js和express的Web SSH客户端基于HTML5的基于Web的终端仿真器和SSH客户端的基本示例。 我们使用SSH2作为主机上的客户端,以将Websocket / Socket.io连接代理到SSH2服务器。要求...