基于SSH反向隧道技术远程维护充电桩的方法与流程

文档序号:19729511发布日期:2020-01-18 03:47阅读:449来源:国知局
基于SSH反向隧道技术远程维护充电桩的方法与流程

本发明属于嵌入式linux系统技术领域,具体涉及一种基于ssh反向隧道技术远程维护充电桩设备的方法。



背景技术:

遍布在应用现场各地的充电桩终端产品,采用嵌入式linux系统,借助于2g/3g/4g通讯模块,通过tcp长连接与后台主站云平台保持双向通信,云平台可以随时召测终端状态数据,终端也可以随时上报数据至云平台。

但是,运行在现场的充电桩终端难免会遇到这样或那样的异常情况,这时往往需要派运维人员去现场协助排查,通常的做法一般是运维人员到了现场之后,通过串口线/网线与终端进行连接后,办公室里的开发人员再借助pc端的一些远程软件(比如teamviewer),远程到运维人员的电脑,然后开展维护排查工作。整个排查过程无论是时效性还是经济性都欠佳,首先运维人员去现场需要一定的时间,尤其是偏远地区,出差还会给公司带来一定的差旅费用,更重要的是一些偶发的故障往往转瞬即逝,很难复现,这就给企业运维人员实施远程维护带来了很大的挑战。

目前,现场采用嵌入式linux系统的充电桩终端,对充电桩进行远程访问是借助于2g/3g/4g通讯模块,通过ppp拨号联网后,根据通讯模块上插的sim卡不同,实际运行在电信运营商(移动/联通/电信)的局域网环境中,并且不对外暴露端口,无法从外网直接访问它。要想实现对充电桩终端产品的远程维护,首先就要解决对其远程访问的问题。



技术实现要素:

为解决上述技术问题,本发明提供一种基于ssh反向隧道技术远程维护充电桩设备的方法。ssh(全称secureshell)是一种以安全性闻名的应用层网络通信协议,用于计算机间的安全通信,是目前比较成熟的远程登录解决方案。它提供两种登录方法:1、密码登录;2、公钥登录。密码登录需要人为参与输入用户名和密码,无法满足现场充电桩客户端自动登录远端服务器的需求。

本发明可以使用ssh反向隧道进行内网穿透,通过一台外网可访问的公网服务器做跳转,间接访问到远程现场的充电桩终端。如图1所示,是本发明的ssh反向隧道技术远程维护充电桩的原理示意图。本发明所采用的技术方案如下:

基于ssh反向隧道技术远程维护充电桩的方法,采用公钥登录方式,其包括以下步骤:

步骤1、给充电桩客户端移植轻量级ssh服务器dropbear;

步骤2、充电桩客户端在本地生成一对公私钥;

步骤3、将充电桩客户端本地生成的公钥手动添加到远端公网服务器上;

步骤4、充电桩客户端主动发起ssh登录请求到远端公网服务器,同时建立一个反向隧道;

步骤5、远端公网服务器收到请求后,会在本地生成一串随机字符,并将该随机字符串发送给充电桩客户端;

步骤6、充电桩客户端收到远端公网服务器的随机字符串后,用本地私钥加密,并将密文传送给远端公网服务器;

步骤7、远端公网服务器将收到的密文用保存的客户端公钥解密,并将解密结果与原随机字符串对比,若一致的话证明充电桩客户端可信,允许登录;

步骤8、充电桩客户端ssh登录到远端公网服务器之后,在远端公网服务器上即可建立ssh反向连接,反向登录到充电桩客户端上;

步骤9、远程运维人员登录公网服务器,通过ssh反向隧道访问充电桩,对充电桩进行远程维护。

本发明的有益效果:

1)本发明为开发人员远程维护排查充电桩现场终端问题时,提供了一种便捷手段,不再需要亲临现场,省时、省力。

2)本发明具有易操作、实时性强、减少公司运维开支等优点,应用前景广泛,效果良好。

附图说明

为了更清楚地说明本发明的具体实施方式、或者现有技术中的技术方案,下面将对具体实施方式或现有技术的描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图是本发明的一些具体实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的属于本申请保护范围之内的附图。

图1是本发明的ssh反向隧道技术远程维护充电桩的原理示意图;

图2是基于ssh反向隧道技术远程维护现场终端的步骤流程图;

图3是本发明实施例的主站后台管理界面的示意图;

图4是本发明实施例的在公网服务器上执行操作命令的示意图。

具体实施方式

下面结合附图,具体说明本发明的实施方式。

如图2所示,是基于ssh反向隧道技术远程维护现场终端的步骤流程图。一种基于ssh反向隧道技术远程维护充电桩设备的方法,需要一台外网可访问的公网服务器。公司如果有服务器可以直接用,没有的话可以从阿里、腾讯等服务商那里租用一台。具体步骤如下:

步骤1、给充电桩客户端移植轻量级ssh服务器dropbear;具体步骤如下:

1.a.下载并解压dropbear,这里以dropbear-0.52为例,下载链接为https://matt.ucc.asn.au/dropbear/releases/dropbear-0.52.tar.gz。

1.b.交叉编译dropbear,由于嵌入式linux系统一般运行在arm平台上,需要将上面下载的源代码进行交叉编译(cross-compiling,所谓交叉编译,就是在一种平台上编译,编译出来的程序,放到别的平台上运行,即编译环境和运行环境不一样,这个概念主要和嵌入式开发有关,一般是在x86平台上编译,在arm平台上运行),进入dropbear解压后的目录,执行如下命令:

#mkdir/usr/local/dropbear/

#./configure--prefix=/usr/local/dropbear--with-zlib=/usr/local/zlib/

cc=arm-none-linux-gnueabi-gcc--host=arm

#makeprograms="dropbeardbclientdropbearkeydropbearconvertscp"

#makeprograms="dropbeardbclientdropbearkeydropbearconvertscp"

install

1.c.将/usr/local/dropbear/bin/和/usr/local/dropbear/sbin/目录里面交叉编译后得到的可执行程序,都复制到嵌入式linux终端的/usr/sbin/目录下。

1.d.在嵌入式linux终端的启动脚本/etc/rc5.d/rcs中加入如下语句,让dropbear随系统一起启动。

/usr/sbin/dropbear

1.e.经过以上步骤,dropbear便成功移植到嵌入式linux充电桩终端中。

步骤2、充电桩客户端在本地生成一对公私钥;具体方法是:

在嵌入式linux终端充电桩客户端上执行如下命令,生成公钥和私钥对文件:

#dropbearkey-trsa-f.ssh/id_rsa-y

步骤3、将充电桩客户端本地生成的公钥手动添加到远端公网服务器上;具体方法是:

把上面生成的公钥文件rsa.pub上传至公网服务器的~/.ssh目录中。

在公网服务器上执行如下命令,导入该公钥文件。

#echorsa.pub>authorized_keys

步骤4、充电桩客户端主动发起ssh登录请求到远端公网服务器;

步骤5、远端公网服务器收到请求后,会在本地生成一串随机字符,并将该随机字符串发送给充电桩客户端;

步骤6、充电桩客户端收到远端公网服务器的随机字符串后,用本地私钥加密,并将密文传送给远端公网服务器;

步骤7、远端公网服务器将收到的密文用保存的客户端公钥解密,并将解密结果与原随机字符串对比,若一致的话证明充电桩客户端可信,允许登录;

步骤8、充电桩客户端ssh登录到远端公网服务器之后,在远端公网服务器上即可建立ssh反向连接,反向登录到充电桩客户端上;

步骤9、远程运维人员登录公网服务器,通过ssh反向隧道访问充电桩,对充电桩进行远程维护。

应用本发明的方法进行充电桩远程维护排查工作,仿佛充电桩终端就在自己面前一样,以下列举了一些简单的维护操作:

9.a.修改充电桩终端地址。

9.b.更换液晶的广告图片。

9.c.查询sim卡的卡号、信号强度、工作的网络制式等。

9.d.测试每一路继电器工作是否正常,是否有继电器闭合不了(会导致用户在该路插座上无法充电)或者继电器跳不开(会导致用户在该路插座上无需支付即可免费充电)的现象。

9.e.查看终端上记录的历史充电报文,可对有疑义的充电行文进行问题追踪回溯。

9.f.查看当前实时充电的电压、电流、电量、时间、金额等信息。

9.g.设置查看某个任务线程的打印信息(充电桩终端应用程序采用的是多任务线程,所有任务都放开打印的话,打印信息可能会比较多,不容易查找有用信息,这时可以只对某个任务放开打印权限)。

进一步地,通过主站后台给终端下发如下命令并执行:

#ssh-i~/.ssh/id_rsa-f-n-rportno:localhost:22root@serverip

其中:

portno:为公网服务器上的侦听端口。

serverip:为公网服务器ip地址。

上述命令让充电桩ssh登录到公网服务器上,同时允许在该连接通道上建立一个反向隧道。

这里所说的主站后台,就是充电桩的运营管理平台,现场的充电桩都需要登录到该平台上,从该平台上可以看到现场某台充电桩当前实时的电压、电流以及当前有几路正在充电等信息,如图3所示,本发明实施例的主站后台管理界面的示意图。这是现场充电桩登录的主站后台界面,现场充电桩跟主站后台通过tcp建立长连接,可实时进行双向通信,后台主站可以给任意在线的某台充电桩下发执行命令,让该充电桩通过ssh登录到某台公网服务器上,例如让1004号充电桩登录到公网服务器上。主站后台运行在另外一台公网服务器上。

进一步地,充电桩终端首次登录公网服务器成功之后,会将远端公网服务器的公钥保存到本地~/.ssh/known_hosts文件中,等下次再登录这台公网服务器时,充电桩终端就会认出它的公钥已经保存在本地了,从而跳过警告部分。

进一步地,在公网服务器上执行如下命令,可查看是否有充电桩终端登录进来:

#netstat-tunpl|grepportno

进一步地,在公网服务器上执行如下命令,便可借助于ssh反向隧道登录到远方现场充电桩终端上:

#ssh-pportnoroot@127.0.0.1

如图4所示,是本发明实施例的在公网服务器上执行操作命令的示意图。在公网服务器上可以通过执行#netstat-tunpl|grepportno命令来查看是否有充电桩终端登录进来,有的话可执行#ssh-pportnoroot@127.0.0.1命令进行ssh反向连接,反向接入现场充电桩终端(如图1黑色粗线所示,相当于打通了一个反向隧道),通过执行命令进行来查看当前实时充电的电压、电流、电量、时间、金额等信息。图3和图4展示的,是应用本发明方法对一款电动自行车充电桩终端产品、借助ssh反向隧道技术,远程维护的实施实例。

说明:

1、步骤1~步骤7,只需要进行一次,以后再想远程连接现场充电桩终端时,只需要从步骤8开始即可。

2、将终端中移植好的轻量级ssh服务器dropbear、本地生成的公私钥对文件,以及保存公网服务器公钥信息的文件~/.ssh/known_hosts一起打包到充电桩终端根文件系统rootfs里面,随文件系统一起烧写到终端中,便于充电桩终端批量生产。

3、这样批量生成的充电桩终端不需要再做额外的工作,可直接发往现场投入运行,如果有需要远程现场充电桩的需求时,只需要执行步骤8-步骤10的操作即可。

最后需要说明的是:以上实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此。本领域技术人员应该理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1