CentOS折腾记录(十四):安装ttyd开启web终端

admin2022-12-29  153

HiNAS系统里面有这个ttyd的终端,是通过网页访问,安装了这个就可以不用登陆宝塔面板,也不用切换到桌面运行Putty,其实Putty一直在用,蛮好用的,就是配置修改之后不保存,每次连接的时候要修改一次,有些麻烦。然后才想到要安装ttyd这个web终端。

 

通过度娘找资料,安装其实也挺简单,但是通过github下载,就是一件让人头疼的事。速度太慢了。看看什么时候有空就找找加速访问github的方法。暂时先忍耐一段时间吧。

 

不过ttyd这个最好不要用到生产环境,不安全。

 

想一想,任何人都可以通过浏览器直接就打开你服务器上的终端,那是多么可怕的一件事。

 

反正现在是在自己折腾,用的闲置笔记本,里面什么数据都没有,也就没有什么可以担心的了。

 

下载ttyd:

wget -O ttyd https://github.com/tsl0922/ttyd/releases/download/1.7.2/ttyd.x86_64

 

添加执行权限:

chmod +x ttyd

 

移动目录:

mv ttyd /usr/sbin

 

这样就安装完成了。感觉就像是windows里面下载了一个绿色免安装的程序,还是单文件的。

 

安装完之后,查看版本信息:

ttyd -v

 

显示是1.7.2版,这是目前最新的版本。

 

运行ttyd:

ttyd bash

 

运行之后就可以通过浏览器http://ip:7681进行访问了。

 

根据度娘查到的资料显示:

ttyd并没有保持后台运行,访问7681也不需要任何密码验证,非常不安全,我们要为ttyd创建一个systemd服务并设置用户名、密码验证。

 

新建一个服务,创建一个ttyd.service文件:

vi /etc/systemd/system/ttyd.service

 

将以下内容复制粘贴进去:

[Unit]
Description=ttyd
After=network.target

[Service]
ExecStart=/usr/sbin/ttyd -c user:user.password bash

[Install]
WantedBy=multi-user.target

 

用户名是user,密码是user.password,可根据实际情况修改。

 

文件创建完毕后让daemon生效:

systemctl daemon-reload

 

创建好服务之后就可以通过systemctl的命令管理了:

#启动ttyd
systemctl start ttyd
#停止ttyd
systemctl stop ttyd
#重启ttyd
systemctl restart ttyd
#开机启动
systemctl enable ttyd

 

资料上还有通过nginx反向代理实现域名访问ttyd的方法,暂时用不上,就不记录了。

 

运行ttyd服务后再次访问,发现网页会弹出输入用户名密码的界面,这跟神雕大神的ttyd终端好像有点不太一样,神雕大神的ttyd终端是进入终端界面了之后才需要输入系统登陆密码,跟ssh连接一样。

 

通过度娘查资料的时候发现了ttyd的一些用法,其中有一项是说ttyd支持ssh,根据资料的命令代码,将创建好的ttyd服务配置文件修改一下,改成下面这样:

[Unit]
Description=ttyd
After=network.target

[Service]
ExecStart=/usr/sbin/ttyd login

[Install]
WantedBy=multi-user.target

 

保存退出之后,重载一下daemon,让daemon生效:

systemctl daemon-reload

 

再重启一下ttyd服务:

systemctl restart ttyd

 

这样通过web访问ttyd的时候就跟神雕大神HiNAS里面的ttyd一样了,连接之后需要输入系统用户和密码才能使用。

 

这里有个权限问题,如果想要用root用户登陆ttyd的话,需要用root权限来运行ttyd,并且要有可读/etc/securetty文件的权限,度娘查到的资料如下:

 

注意:如需root身份登录终端,需要在属主属组为 root 的 /etc/securetty文件中增加可登录的终端类型pts/0 pts/1 pts/2,当然也需要运行 ttyd 程序的用户有可读 /etc/securetty 文件的权限(当然也就是以 root 身份启动 ttyd 服务)。

所以,为安全性考虑,不建议以 root 身份启动 ttyd 服务,也就不建议直接以 root 账户登录 ttyd websockets页面伪终端。

 

先将配置修改成以root权限启动,内容如下:

[Unit]
Description=ttyd
After=syslog.target
After=network.target

[Service]
ExecStart=/usr/sbin/ttyd -p 7681 login
Type=simple
Restart=always
User=root
Group=root

[Install]
WantedBy=multi-user.target

 

记得要让deamon生效:

systemctl daemon-reload

 

重启一下ttyd服务:

systemctl restart ttyd

 

修改/etc/securetty文件:

vi /etc/securetty

 

在文件末尾增加如下内容:

pts/0
pts/1
pts/2

 

再访问ttyd就可以用root用户登陆了。

转载请注明原文地址:http://198484.com/?read-37.html
000

最新回复(0)