缩略图
Media science

计算机终端远程控制部署软件系统设计与实现

作者

易谋 谢军 赵国强

西昌卫星发射中心, 四川西昌 615000

摘  要  针对专网内计算机数量多,维护手段落后,大量重复性操作导致工作量大、效率低等问题,提出采用批量远程操作专网内基于Linux的操作系统终端,将大量的重复性操作编写成shell脚本部署在各终端上,通过SSH安全远程登录操作完成计算机维护运营。采用B/S架构开发一套系统平台,在其上设计软件配置文件模块、操作控制模块、系统监视模块和存储模块,实现远程控制对软件的部署更新、软件运行操作、对操作系统运行状态进行监视和远程开关机操作,从而提高工作效率,提升机房自动化、智能化水平。

关键词  SSH;shell脚本;B/S架构

中图分类号:TP311.5

Abstract: In response to the problems of a large number of computers in the private network, outdated maintenance methods, and a large number of repetitive operations leading to high workload and low efficiency, a batch remote operation of Linux based operating system terminals in the private network is proposed. A large number of repetitive operations are written into shell scripts and deployed on each terminal, and computer maintenance and operation are completed through SSH secure remote login operation. Develop a system platform using B/S architecture, and design software configuration file module, operation control module, system monitoring module, and storage module on it to achieve remote control of software deployment and update, software operation, monitoring of operating system operation status, and remote on-off operation, thereby improving work efficiency and enhancing the automation and intelligence level of the computer room.

Keywords SSH; Shell script; B/S architecture

在专网上使用的软件和文件因适应任务需要频繁改动更新,多点部署的情况下,需要人员依次进行维护管理,考虑用命令直接操作繁杂易错、使用远程登录软件putty或者系统自带的远程登录软件也不能高效批量操作多台终端等实际情况,对其配套运维工具的开发迫在眉睫。鉴于专网内终端使用同一网络进行连接和基于Linux操作系统的特性,可使用Linux系统shell脚本命令进行数据交互。在结合操作系统特点、运维需求及终端应用的基础上,本文设计了一种基于SSH (secure shell)协议的批量管理运维工具,适用于通用型Linux系统计算机远程控制部署,从设备连接到功能实现,自动输入预设命令,指定软件和文件控制部署,本方法打破使用逐行人工输入命令的弊端,为常用命令提供可视化操作按键,减少手动重复输入,有利于提高软件部署升级开发和机房自动化运维的效率。

1 SSH安全远程登录

1.1SSH协议简介

SSH是目前较为可靠,专门为远程登录会话和其他网络服务提供安全性的协议[1],利用SSH安全外壳协议可以有效防止远程管理过程中的信息泄露问题。SSH是建立在应用层,传输层的安全协议,可用在远程登录以及文件传输,传输过程中对数据压缩,可提供的传输速率较快,通常可应用在计算机终端和通信设备交换机、路由器等设备上进行远程登录。

1.2 SSH连接

SSH连接过程[2]如图1所示:客户端和服务器端通过TCP协议连接,接着进行SSH版本协商,进行秘钥交换,服务器生成公钥和秘钥,将传公钥给客户端,客户端加密会话秘钥C给服务器,服务器使用秘钥解密得到秘钥C,随后进行验证用户名和登陆口令,验证通过便能进入通信。

1.3 SSH安全验证

SSH提供两种级别的安全验证:一种是基于口令的安全验证,用户只要知道自己的帐号和口令,就可以登录到远程主机进行数据传输,也是本文中实现的监控系统使用的验证方式。另一种为基于密钥的安全验证,用户必须为自己建立一对公钥/密钥对并把公钥放在需要访问的服务器上[3]。

1.4 SSH配置免密登陆

鉴于终端设备尽在专网内运行,与其他网络隔开,为提升远程执行速度,使用配置SSH免密登陆,服务器端执行命令ssh-keygen 生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下。

然后把公钥发往远程机器,即客户端。执行命令:ssh-copy-id -i ~/.ssh/id_rsa.pub root@kylin 客户端连接服务器免密码登录,若在服务器端使用ssh远程连接命令连接客户端,未提示输入密码,直接进入客户端的终端界面,说明SSH免密码登录配置成功。

2系统功能设计

2.1系统总体设计方案

采用B/S架构开发技术状态快速建立系统,主要分为操作控制模块、系统监视模块、软件配置文件模块和存储模块。用户使用浏览器登陆该系统,可以查看终端设备的实时状态信息,对在线的终端可以进行配置文件及软件部署和更新,远程操作指定软件的开启、重启和关闭,一键关闭指定的计算机终端。该系统平台提供软件管理操作界面,记录用户操作使用日志,用户可通过在页面上进行筛选查询。系统总体设计功能模块图如图5所示。

2.2 Shell脚本设计

Linux shell是用户和Linux内核之间的接口程序,为用户提供使用操作系统的接口,Linux系统上使用shell可以把冗长的复杂的命令合并成简单的命令,使用起来简单,shell中命令参数使用读取文本文件方式,编写通用shell脚本,符合基于Linux操作系统的执行,设计出脚本供PHP模块可以在程序中运行远程执行命令。

3数据库设计

数据库使用关系型数据库MYSQL数据库,其中包括文件属性表、软件属性表、设备属性表、设备操作记录表、软件操作表、文件操作表、设备操作表7个数据表。部分实体图如图4。

4系统实现

系统采用浏览器、Web服务器和数据库三层结构,软件和数据库部署在服务器端,用户通过浏览器登录访问本系统。服务器端部署Nginx、MySQL服务,使用html+css+javascript+php编程语言进行软件开发,html+css实现页面上的布局显示,JavaScript+php编程实现功能和数据的交互,数据库使用MySQL存储。远程控制及操作均在使用PHP中拓展模块ssh2模块远程连接操作的计算机终端,配置密码登陆验证后实现的,按系统功能框架图如图3,分模块对软件进行实现,主要模块实现如下。

(1) 操作控制模块

在远程登录的基础下,进行远程操作命令,对于Linux自带的通用系统命令,服务器端直接进行软件的控制,对于像启动软件在客户端显示的,配置shell脚本放置在软件指定的路径,设置运行权限,再通过服务器端远程进行脚本的调用,从而实现对软件的控制。对于软件关机,首先通过找到软件运行的进程,然后关闭进程,从而关闭软件。使用poweroff命令关机,reboot命令重启计算机,设置网卡及主板支持网络唤醒,通过终端mac地址,服务器端使用wol进行唤醒开机。

(2) 终端系统性能监视模块

登录每个在线终端设备,使用top命令实时获取终端的cpu、内存等资源使用率。使用ping命令进行每1秒定期测试网络的连通性,以列表的形式显示每个设备的实时信息,以不同颜色显示终端的异常情况,达到监视计算机终端状况的效果。

(3) 软件文档配置模块

该模块分为文件编辑和软件管理两部分,在支持一般普通的文件编辑下,文件编辑还支持脚本的编写,脚本可执行权限设置,部署路径设置,对临时输入的文字能以草稿形式存放。软件管理包括软件的部署更新,主要是软件的配置文件和软件的安装包和各个终端的软件版本控制,支持软件按适配的操作系统进行分类,支持模糊搜索,供用户下载以及管理员远程部署到指定的计算机上。同样也支持管理员任意使用同一网络中的一台计算机终端上的浏览器,进行更新服务器上存储的软件和上传本地软件到服务器。

(4) 存储模块

将每个设备、软件、文件的信息存到数据库中,对每次的新增、修改、删除的信息进行操作、并将控制操作进行操作日志记录,实现管理可控制软件或文件回退、更新,其中普通删除操作使用软删除,仅在查询时不显示数据,实则还存在数据库和服务器内,从而达到对数据的保护,待用户数据备份完成后,便删除数据库中数据。

(5)人机交互模块

软件风格界面如图5所示,左边提供导航栏,分终端设备状态、一键关机/开机、软件管理、文件编辑、操作日志5项。在终端设备状态栏下,支持设备的搜索、信息查询、双击具体指定设备的,可对设备的属性进行编辑,单个设备进行软件或文件控制部署操作。一键关机/开机,支持对所选设备的关机或开机控制操作。软件管理栏,以表格的形式列举服务器上存放的可供计算机终端下载,管理员部署和修改的软件,提供软件信息添加和安装包及安装文件上传功能。

5结  论

针对文件和软件配置频繁的计算机,多台终端操作效率低下等不足现状,以及机房计算机基于Linux操作系统特点,shell脚本使用方便且通用,结合现场量大、多点部署及操作重复等因素,本文从机房计算机维护发展现状出发,提出了一种基于SSH的计算机远程部署软件。从软件功能需求和安全高效角度,该软件适用SSH协议登录与交互,再结合web开发,本文以模块化、易扩展、通用为设计原则设计软件,给出了系统设计以及功能实现。为专网内计算机提供界面友好、连接安全、方便高效的计算机远程控制部署软件系统。

参考文献

[1]金能智 文沈 安文婷 杨博超.Linux高性能计算集群SSH安全远程登录的研究[J].现代信息科技,2019,3(13):177-179

[2]陈雷刚 宋子昂 李稚 袁雷.基于SSH的台区智能融合终端运维工具设计[[J].电气技术,2020, 38(9):122-126

[3]杨春龙.SSH协议在资源监控系统数据传输中的应用[J].软件,2013,34(9):123-125

作者简介

易谋(1997),男,助理工程师,本科,主要研究方向为通信工程。

谢军(1987),男,工程师,本科,主要研究方向为通信工程。