CentOS 7使用ttyd搭建一个WEB共享终端(WebSSH)
ttyd 是一个简单的命令行工具,用于在 Web 上共享终端,简单点说就是可以实现在网页上使用SSH终端服务,并且该软件是免费开源的。 
安装ttyd
ttyd作者已经提供编译好的二进制文件,直接下载即可使用,最新版下载地址为:https://github.com/tsl0922/ttyd/releases,这里以CentOS 7为例:
1 | #下载ttyd |
通过上面的几个步骤,我们已经完成ttyd安装,输入命令ttyd -v可查看当前版本:
1 | [root@hosta29d0ffef5 ~]# ttyd -v |
运行ttyd
输入命令ttyd bash运行ttyd,注意防火墙需要放行7681端口,然后浏览器访问http://IP:7681即可打开WEB终端,如下图。
不过ttyd并没有保持后台运行,访问7681也不需要任何密码验证,非常不安全,接下来我们为ttyd创建一个systemd服务并设置用户名、密码验证。 新建服务 创建一个ttyd.service文件:vi /etc/systemd/system/ttyd.service内容如下:
1 | [Unit] |
创建完毕后输入命令:systemctl daemon-reload让daemon生效。 上面使用了-c参数,这个参数的含义是设置用户名、密码验证,格式为-c 用户名:密码,上方设置的用户名为xiaoz,密码为xiaoz.me,请自行修改为自己的用户名、密码。 服务创建后,我们可以使用systemd命令来进行管理了,命令如下:
1 | #启动ttyd |
Nginx反向代理
如果您不喜欢通过IP + 端口的访问形式,也可以设置Nginx反向代理通过域名访问,配置如下: 如果是网站根目录
1 | location / { |
如果是网站二级目录
1 | location ~ ^/ttyd(.*)$ { |
注意上面的ttyd可以修改为自己想要的路径。
ttyd参数说明
输入ttyd -h可以查看ttyd帮助,说明如下:
1 | USAGE: |
总结
使用ttyd可以很方便快速的搭建一个WebSSH服务,但便利就意味着要承担更多的安全风险,虽然ttyd提供了基本的密码验证,但这种验证方式仍然不安全,使用ttyd的同时意味着你的服务器也多了一个入口,所以不建议用在生产环境,自己折腾倒是无所谓。
- ttyd项目地址:https://github.com/tsl0922/ttyd
- ttyd官方主页:https://tsl0922.github.io/ttyd/