0. 一堆废话

最近我也一直在这些事情上饱受折磨:

  • 有的时候需要连接SSH,但却没有SSH客户端 (比如Xshell)
  • 装个客户端太麻烦,还经常踩中丁丁的坑
  • 有的环境,人家不想让你乱装软件

那么,有没有一种能够在Web上就可以部署的SSH方案呢?

答案是,Docker镜像 liftoff/gateone !

先上个效果图:

liftoff-gateone-1-test.png

是不是感觉很方便?

而且常用的按键,GateOne都支持:

  • Shift+Insert 粘贴
  • Ctrl+A+D 登出
  • Ctrl+C 中断
  • (还有其他常用的命令)

1. 部署教程

由于官方的镜像基于Debian Linux制作而成,体积相对较大(312MB),建议先使用docker pull命令拉取镜像到本地,然后再启动镜像!

部署方法非常简单,首先,我们先拉取镜像:

docker pull liftoff/gateone

然后等待镜像拉取结束后,使用以下命令行启动镜像:

docker run [-d/-t] -p [443]:8000 -h [hostname] --name gateone liftoff/gateone 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报错,故使用此命令行来避免错误)

然后访问你的浏览器地址:

https://gateone.your-domain.com:6001/

注意:https前缀不要丢掉,GateOne默认使用自签证书,会报SSL证书错误,无视即可,下面的教程会介绍如何集成自己的证书;域名部分请替换成你自己的域名或者IP;端口号和你前面启动参数中暴露的端口保持一致!

2. 导入自己的SSL证书 (可选)

如果你有自己的SSL证书,并且你想要将其与你的GateOne相结合的话,可以接着往下操作:

首先,结束掉你之前运行的GateOne容器:

docker kill gateone

然后,创建一个Dockerfile文件(文件名就叫Dockerfile,没有后缀名,严格区分大小写),写入以下内容:

FROM liftoff/gateone

ADD gateone-ssl/certificate.pem /etc/gateone/ssl/certificate.pem
ADD gateone-ssl/keyfile.pem /etc/gateone/ssl/keyfile.pem

CMD [ "gateone" ]

然后和Dockerfile同目录创建gateone-ssl文件夹,将你的证书和密钥导入:

mkdir gateone-ssl
cd gateone-ssl
vim certificate.pem
(导入你的证书)
vim keyfile.pem
(导入你的密钥)
cd ..

确认密钥无误后,执行命令:

docker build --t="gateone-ssl" .

上面的命令,请注意后面有个英文句号(点),不要忽略掉!

当出现Successfully Built结果时,执行命令(剩下的参数请参考上面自行补全):

docker run [参数省略] gateone-ssl gateone  

然后,再去访问你的地址,看看SSL证书是否生效!

3. 联系我 & 求投喂!

企鹅:(因近期频繁被骚扰,请使用E-Mail)
E-mail: ilemonrain#ilemonrain.com
Telegram: @ilemonrain
投喂通道: 点击下面的赞赏支持,喵~

最后修改:2018 年 05 月 31 日
如果觉得我的文章对你有用,请随意赞赏