admin管理员组

文章数量:1531492

2024年7月3日发(作者:)

Shellinabox:基于Web的远程Terminal模拟器安装使用详

目录

[隐藏]

o

o

o

o

o

o

o

o

一、Shellinabox 简介

二、Shellinabox 安装

2.1 编译安装

2.2 安装包安装

三、Shellinabox 启动与配置使用

3.1 生成 pem 证书

3.2 启动

3.3 相关启动参数

3.5 配置

3.5.1 配置反向代理访问

3.6 关闭 Shellinabox

3.7 常见的启动失败原因

四、Shellinabox 使用

五、存在的问题 BUGS

六、其他相关工具

七、相关参考

一、Shellinabox 简介

Shellinabox 是一个基于 web 的终端模拟器,采用 C 语言编写,

使用 Ajax 与后端服务通信。它实现了一个 Webserver,默认监听

4200 端口,在支持 Javascript 和 CSS 的浏览器上访问

host:4200 即可。并且可以配置 SSL/TLS 证书,使用 https 方

式加密通信。

二、Shellinabox 安装

2.1 编译安装

wget /files/

tar zxvf

cd shellinabox-2.14

./configure

make && make install

2.2 安装包安装

在 ubuntu 中你也可以通过下载 deb 软件包进行安装。下载地址

如下:

/raring/web/shellinabox

三、Shellinabox 启动与配置使用

3.1 生成 pem 证书

生成 pem 证书,可以 https 方式启动。pem 证书的格式为公钥

加私钥,并以 x509 的格式进行打包。

openssl req -new -x509 -nodes -out

-keyout

cat >

/tmp/

SSL 证书不是必须要手动生成的。如果没有生成 SSL 证书,或者

启动时没有指定它或无法找到,并且没有使用 -t 参数禁用 SSL,则守

护进程会尝试自动生成一个 SSL 证书。

3.2 启动

安装完后可通过以下命令来启动

shellinaboxd -b -c /tmp

查看是否启动:

netstat -ntpl |grep 4200

ps -ef |grep shellinabox

服务默认是 4200 端口,可如此进行访问:

yourhostip:4200。

3.3 相关启动参数

-b | –background[=pidfile]

指定其后台运行。如果指定了文件路径参数,则会将 Shellinabox

的进程 pid 写入其中,以便于 kill 结束其运行。

-c | –cert=certdir

指定证书目录

–cgi[=portrange]

以 CGI Web 服务器扩展方式运行

该选项与 –background, –pidfile 和 –port 互斥。

为了使 Shellinabox 成为有效运行的 CGI 脚本,可能必须赋予

Shellinabox 以 root 权限,这是不安全的。

–css=filename

指定定义界面配色的 CSS 样式。默认样式为

-d | –debug

调试模式,将会在 stderr 标准输出上输出所有的信息。

该参数与 –quiet 和 –verbose 互斥。

-f | –static-file=url:file

将一些特殊文件替换为用户自定义的文件。

如 、、 、 、

.

也可指定为某一个包含这些文件的目录。

-g | –group=gid

指定运行用户组,默认为 nogroup

–linkify=[none|normal|aggressive]

指定连接地址自动识别的可点击性。如 url、ftp、email 等。

–localhost-only

只监听本地回送接口,用于使用反向代理的情况下。默认情况下

守护进程会监听所有可用的网络接口。

-n | –numeric

在 –verbose 模式下使用,日志记录输出时用 ip 地址代替域名

DNS 路由表。

即以客户端 IP 地址代替域名的输出。

-p | –port=port

指定监听端口,默认4200

–pidfile=pidfile

将进程 pid 存放于指定的文件中

-q | –quiet

安静模式,禁用所有输出到到 stderr 的信息。

不选择该参数,并不在后台模式运行时,标准输出 stderr 会实时

显示信息。

该参数与 –debug 和 –verbose 互斥。

-s | –service=service

用以注册更多的应用服务,使得可以通过不同的 URL 路径访问这

些服务功能。

service 的格式为:

SERVICE := ‘:’ APPLICATION

-t | –disable-ssl

不以 SSL 运行

-u | –user=uid

指定运行用户,默认 nobody

–user-css=styles

定制用户可选择的风格外观,用户可通过右键菜单进行选取,选

取的标识记录在 cookie 中。

style 的格式:

STYLES := GROUP { ‘;’ GROUP }*

GROUP 的格式:

GROUP := OPTION { ‘,’ OPTION }*

OPTION 的格式:

OPTION :=

-v | –verbose

启用记录 Apache-style 日志文件到 stderr 。

该选项与 –debug 和 –quiet 参数互斥。

–version

打印版本号并退出

更详细参数含义请查看 help 帮助说明,或者参阅这里:

/p/shellinabox/wiki/shellinaboxd_

man

shellinaboxd -h

*shellinaboxd* [ *-b* | *--background*[=_pidfile_] ] [ *-c* | *-

-cert*=_certdir_ ]

[ *--cert-fd*=_fd_ ] [ *--css*=_filename_ ] [ -*-

cgi*[=_portrange_] ] [ *-d* |

*--debug* ] [ *-f* | *--static-file*=_url_:_file_ ] [ *-g* | *--

group*=_gid_ ]

[ *-h* | *--help* ] [ *--

linkify*=[*none*|*normal*|*aggressive*] ]

[ *--localhost-only* ] [ *--no-beep* ] [ *-n* | *--numeric* ] [ *-

-pid-*

*file*=_pidfile_ ] [ *-p* | *--port*=_port_ ] [ *-s* | *--

service*=_service_ ]

[ *-t* | *--disable-ssl* ] [ *--disable-ssl-menu* ] [ *-q* | *--

quiet* ]

[ *-u* | *--user*=_uid_ ] [ *--user-css*=_styles_ ] [ *-v* | *--

verbose* ]

[ *--version* ]

3.4 一些启动配置示例

shellinaboxd -t -f :/dev/null

不以 SSL 方式,禁用响铃

shellinaboxd -t -b -q –

css=shellinabox/

不以 SSL 方式,在后台安静运行,启用颜色配置为黑白界面:

shellinaboxd -b -c /tmp -p 8080

让 Shellinabox 后台运行,使用 /tmp 下的证书,启动端口为

8080。

shellinaboxd -d -s

/terminal1/:user:group:homedirectory:/bi

n/bash # -s URL,user,group,working-

dir,command

绑定一个 bash

shellinaboxd -t -s /:LOGIN -s

/who:nobody:nogroup:/:w

通过访问 host:4200/who ,可以查看当前的登陆用户列

表。

需要 root 权限的账号执行。

3.5 配置

Shellinabox 主要通过启动参数进行配置,没有配置文件。用户可

以在浏览器页面上单击鼠标右键,选择几种设置,该设置会保存在

cookie 当中。

3.5.1 配置反向代理访问

此外,可以通过在其他 Webserver 中配置反向代理,以将其集成

在 Web 网站中访问。

当希望使用反向代理方式时,需要填写启动参数 –localhost-only ,

另外如果代理服务器不支持 SSL,则 –disable-ssl 参数也需要填写 。

例:

shellinaboxd –localhost-only –disable-

ssl -b -t –css=shellinabox/white-on-

Apache 的参考配置:

ProxyPass localhost:4200/

Order allow,deny

Allow from all

nginx 的参考配置:

location / {

proxy_pass 127.0.0.1:4200;

}

3.6 关闭 Shellinabox

查找到 Shellinabox 的进程 pid ,kill 即可

ps x | grep shellinaboxd | grep -v grep

| awk ‘{print $1}’

也可在启动时加上 -p 参数,将进程 pid 保存到指定的文件中,需

要关闭时读取它并进行 kill

3.7 常见的启动失败原因

重复使用的端口已在使用中;

缺乏足够的权限来运行服务;

未能找到SSL / TLS证书;

新生成的证书认证目录不可写,etc.

四、Shellinabox 使用

通过 URL 打开进入 Web 界面后,所有操作与桌面 SSH 终端类似。

如图示例。

五、存在的问题 BUGS

对于 CTRL、ALT、WIN、ESC 这些键的中断截取,可能在不同的

浏览器上会出现失败。比如在 IE 上可能不被允许截取 ALT 键,而始终

将其解释为菜单的快捷键。此时同时按下 WIN+CTRL 或许会有效。

内部剪切板可以通过右键访问,但 IE 浏览器不行。

有的浏览器会限制并发请求的连接数,这限制了多少AJAX终端可

以同时打开。如出现这方面的问题,需要用户对本地浏览器并发连接

数进行修改。

六、其他相关工具

Ajaxterm /antonylesuisse/qweb

Anyterm /

/

Gate One /Products/GateOne

/chjj//

KeyBox /

Webmin /

七、相关参考

/p/shellinabox/

/UbuntuHelp:Shellinabox

/wiki/Web-based_SSH

网页版ssh终端:/archives/1850

让 Shellinabox 支持 ipv6:/ideal/?p=187

本文标签: 指定使用启动