GateOne是一款不错的WebShell,在完成配置之后我们可以轻松通过浏览器的方式登入到我们的Linux设备shell上面去。

这里采用容器的方式来运行它,GateOne支持容器镜像,这样的话我们就不用编译它了,同时也不用考虑环境依赖的问题。

首先执行docker的sh脚本,配置和安装docker

curl -sSL https://get.docker.com/ | sh

然后启动docker

service docker start

接着我们可以从docker源中直接拉取GateOne的镜像

docker pull liftoff/gateone

到此gateone就已经安装完成了,是不是非常简单,如果你已经配置好了docker那么直接用上面这条命令就可以完成安装。

在此之前,我想先教大家给gateone配置一个ssl证书,因为gateone默认强行采用ssl协议也就是https协议,你通过http是访问不了的,但是你加上https由于没有配置ssl证书浏览器就会报危险网站禁止访问,所以为了能顺利且没有烦恼的访问webssh先给我们的gateone配置一个ssl证书。

这里我使用的是宝塔Linux桌面的证书申请

首先点击网站

wsl中运行docker docker webshell_ssl证书

在点击设置

wsl中运行docker docker webshell_ssl证书_02

选择ssl的Let's Encrypt方式申请,Let's Encrypt是一个组织专门申请免费的ssl证书的

wsl中运行docker docker webshell_ssl证书_03

申请完成之后在你的root目录下创建一个目录叫gateone-ssl

cd root
mkdir gateone-ssl

然后在gateone-ssl目录下创建两个文件

ssl.key和ssl.pem

ssl.key内容是宝塔里申请的key

wsl中运行docker docker webshell_命令行_04

而pem是ssl证书文件(pem)

wsl中运行docker docker webshell_ssl证书_05

记住内容全部复制进去。

然后在root目录下在创建一个文件名为Dockerfile

touch Dockerfile

然后把下面命令输入到命令行并执行

echo "FROM liftoff/gateone
ADD gateone-ssl/ssl.pem /etc/gateone/ssl/certificate.pem
ADD gateone-ssl/ssl.key /etc/gateone/ssl/keyfile.pem
CMD [ "gateone" ]" > /root/Dockerfile

最后在输入如下命令:

docker build -t="gateone-ssl" .

重建一次镜像

如果没有问题则会输出Successfully Built

这里有两种运行方法,普通运行不采用ssl证书的方式:

docker run -t -p 449:8000 -h Rats --name gateone liftoff/gateone gateone

但是gateone会强制ssl,所以会提示ssl错误,你可以在你的浏览器里输入https://ip:449,注意要使用https,因为gateone强制使用ssl方式建立链接,但是由于没有ssl证书浏览器会报危险网站,我们选择忽略警告就可以了。

上面是不安全的,我们建议使用ssl方式:

docker run -t -p 449:8000 -h Rats --name gateone gateone-ssl gateone

参数介绍:

-d/-t:决定镜像是使用Deamon(后台)模式启动,或者显示启动过程 
-p 443:8000:绑定端口,注意:GateOne强制使用SSL,8000端口为Docker容器内的固定映射端口,请只改动冒号前面的端口,不要动后面的端口号! 
-h hostname:设置Docker容器的主机名(这个将会显示在你的浏览器标题中) 
--name gateone:设置Docker容器的名称(不是主机名),用来docker ps时识别用 
liftoff/gateone:镜像名称 
gateone:启动命令行,勿动(默认命令行会发生Python io_loop报错,故使用此命令行来避免错误)

停止容器:

docker kill gateone

删除容器:

docker rm gateone

 

最后请注意,我这里的所有方法都是基于有公网ip和域名的情况下,如果你没有域名只有公网ip,申请ssl证书的时候一定要是ip的证书,有域名建议使用域名,如果你是局域网的话,那就没有必要使用这个方式了。

在浏览器中输入之后成功进入webssl界面

wsl中运行docker docker webshell_wsl中运行docker_06