一种SSH多级跳转路径的构建方法、系统、终端和介质与流程

文档序号:31034412发布日期:2022-08-06 02:45阅读:180来源:国知局
一种SSH多级跳转路径的构建方法、系统、终端和介质与流程
一种ssh多级跳转路径的构建方法、系统、终端和介质
技术领域
1.本技术涉及信息安全的技术领域,尤其是涉及一种ssh多级跳转路径的构建方法、系统、终端和介质。


背景技术:

2.ssh全拼为secure shell,是专为远程登录会话和其他网络服务提供安全性的协议,利用 ssh 协议可以有效防止远程管理过程中的信息泄露问题。
3.部分用户通过ssh协议来进行不同设备间的跳转登录,为了保证网络环境的安全,需要对跳转路径进行溯源追踪。
4.目前监控ssh跳转和溯源的手段一般是通过修改系统本身ssh客户端和ssh服务端的代码逻辑来实现,破坏了现有的ssh客户端和ssh服务端的组件和工作进程,比较麻烦。


技术实现要素:

5.为了便于对ssh多级跳转的路径进行溯源追踪,本技术提供一种ssh多级跳转路径的构建方法、系统、终端和介质。
6.第一方面,本技术提供一种ssh多级跳转路径的构建方法,采用如下的技术方案:一种ssh多级跳转路径的构建方法,包括以下步骤:获取ssh客户端的目标变量参数;基于ssh服务端对所述目标变量参数进行初始配置,得到初始变量参数;当未经过ssh跳转登录时,所述初始变量参数为空值;当第一设备经过1级ssh跳转至第二设备时,通过所述第一ssh客户端将所述初始变量参数发送至第二ssh服务端;通过所述第二ssh服务端获取一级连接信息;基于所述一级连接信息对所述初始变量参数进行补充配置,得到第一变量参数;当所述第一设备经过了n级ssh跳转至第n+1设备后,通过第n+1 ssh服务端获取n级连接信息,所述n为大于等于2的整数;基于所述n级连接信息对第n-1变量参数进行补充配置,得到第n变量参数;将所述初始变量参数或所述第一变量参数或所述第n变量参数作为ssh多级跳转路径信息。
7.通过采用上述技术方案,用户每次进行ssh跳转登录不同的设备时,获取当次的连接信息,并根据连接信息对初始变量参数进行更新,最终得到第n变量参数,通过对第n变量参数解析,即可获取每次的连接信息,继而能够确定ssh多级跳转路径,相较于现有技术,能够在不改变现有ssh客户端和ssh服务端原有组件的情况下,实现溯源ssh多级跳转的追踪,十分方便。
8.可选的,所述基于ssh服务端对所述目标变量参数进行初始配置,得到初始变量参数包括以下步骤:
从所述ssh服务端中获取匹配参数;基于所述匹配参数对所述目标变量参数进行初始配置,得到初始变量参数。
9.通过采用上述技术方案,由于ssh协议是通过客户端向服务端发送数据,因此从ssh服务端中获取匹配参数,根据匹配参数对目标变量参数进行配置,适应了ssh的特性,方便ssh服务端响应连接。
10.可选的,所述一级连接信息包括所述第一设备的第一标志信息和所述第二设备的第二标志信息,所述n级连接信息包括第n设备的第n标志信息和第n+1设备的第n+1标志信息。
11.通过采用上述技术方案,获取连接信息能够将跳转登录的两个设备进行记录,以便后续确定ssh多级跳转路径。
12.可选的,所述通过所述第二ssh服务端获取一级连接信息包括以下步骤:通过所述第二ssh服务端获取所述初始变量参数;基于预设脚本通过所述第二ssh服务端获取第一标志信息以及第二标志信息。
13.第二方面,本技术还提供一种ssh多级跳转路径的构建系统,采用如下的技术方案:一种ssh多级跳转路径的构建系统,包括初始化模块、发送模块、获取模块、处理模块和输出模块,所述发送模块与所述初始化模块连接,所述获取模块与所述发送模块连接,所述处理模块与所述获取模块连接,所述输出模块与所述初始化模块和所述处理模块连接:所述初始化模块,用于获取ssh客户端的目标变量参数,并基于ssh服务端对所述目标变量参数进行初始配置,得到初始变量参数;当未经过ssh跳转登录时,所述初始变量参数为空值;当第一设备经过1级ssh跳转至第二设备时:所述发送模块用于通过所述第一ssh客户端将所述初始变量参数发送至第二ssh服务端;所述获取模块,用于通过所述第二ssh服务端获取一级连接信息;所述处理模块,用于基于所述一级连接信息对所述初始变量参数进行补充配置,得到第一变量参数;当所述第一设备经过了n级ssh跳转至第n+1设备后:所述获取模块,还用于通过所述第n+1 ssh服务端获取n级连接信息,所述n为大于等于2的整数;所述处理模块,还用于基于所述n级连接信息对第n-1变量参数进行补充配置,得到第n变量参数;所述输出模块,用于将所述初始变量参数或所述第一变量参数或所述第n变量参数作为ssh多级跳转路径信息并输出。
14.通过采用上述技术方案,用户每次进行ssh跳转登录不同的设备时,获取模块获取当次的连接信息,处理模块根据连接信息对初始变量参数进行更新,最终得到第n变量参数,通过对第n变量参数解析,即可获取每次的连接信息,继而能够确定ssh多级跳转路径,相较于现有技术,能够在不改变现有ssh客户端和ssh服务端原有组件的情况下,实现溯源
ssh多级跳转的追踪,十分方便。
15.可选的,所述初始化模块包括获取单元和配置单元,所述配置单元与所述获取单元连接;所述初始获取单元,用于获取ssh客户端的目标变量参数,并从所述ssh服务端中获取匹配参数;所述初始配置单元,用于基于所述匹配参数对所述目标变量参数进行初始配置,得到初始变量参数。
16.通过采用上述技术方案,由于ssh协议是通过客户端向服务端发送数据,因此初始获取单元从ssh服务端中获取匹配参数,初始配置单元根据匹配参数对目标变量参数进行配置,适应了ssh的特性,方便ssh服务端响应连接。
17.可选的,所述一级连接信息包括所述第一设备的第一标志信息和所述第二设备的第二标志信息,所述n级连接信息包括第n设备的第n标志信息和第n+1设备的第n+1标志信息。
18.通过采用上述技术方案,获取连接信息能够将跳转登录的两个设备进行记录,以便后续确定ssh多级跳转路径。
19.可选的,所述获取模块包括接收单元和信息获取单元,所述信息获取单元与所述接收单元连接;所述接收单元,用于通过所述第二ssh服务端获取所述初始变量参数;所述信息获取单元,用于基于预设脚本通过所述第二ssh服务端获取第一标志信息以及第二标志信息。
20.第三方面,本技术提供一种终端设备,采用如下的技术方案:一种终端设备,包括存储器、处理器及存储在存储器中并能够在处理器上运行的计算机程序,所述处理器加载并执行计算机程序时,采用了上述的一种ssh多级跳转路径的构建方法。
21.通过采用上述技术方案,通过将上述的一种ssh多级跳转路径的构建方法生成计算机程序,并存储于存储器中,以被处理器加载并执行,从而,根据存储器及处理器制作终端设备,方便使用。
22.第四方面,本技术提供一种计算机可读存储介质,采用如下的技术方案:一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,采用了上述的一种ssh多级跳转路径的构建方法。
23.通过采用上述技术方案,通过将上述的一种ssh多级跳转路径的构建方法生成计算机程序,并存储于计算机可读存储介质中,以被处理器加载并执行,通过计算机可读存储介质,方便计算机程序的可读及存储。
附图说明
24.图1是本技术实施例一种ssh多级跳转路径的构建方法的整体流程示意图。
25.图2是本技术实施例一种ssh多级跳转路径的构建方法中步骤s201-步骤s202的流程示意图。
26.图3是本技术实施例一种ssh多级跳转路径的构建方法中步骤s301-步骤s302的流
程示意图。
27.图4是本技术实施例一种ssh多级跳转路径的构建系统的模块连接示意图。
28.附图标记说明:1、初始化模块;11、初始获取单元;12、初始配置单元;2、发送模块;3、获取模块;31、接收单元;32、信息获取单元;4、处理模块;5、输出模块。
具体实施方式
29.以下结合附图对本技术作进一步详细说明。
30.本技术实施例公开一种ssh多级跳转路径的构建方法,参照图1,包括以下步骤:s101、获取ssh客户端的目标变量参数;s102、基于ssh服务端对目标变量参数进行初始配置,得到初始变量参数,当未经过ssh跳转登录时,初始变量参数为空值;s103、当第一设备经过一级ssh跳转至第二设备时,通过第一ssh客户端将初始变量参数发送至第二ssh服务端;s104、通过第二ssh服务端获取一级连接信息;s105、基于一级连接信息对初始变量参数进行补充配置,得到第一变量参数;s106、当第一设备经过了n级ssh跳转至第n+1设备后,通过第n+1 ssh服务端获取n级连接信息,n为大于等于2的整数;s107、基于n级连接信息对第n-1变量参数进行补充配置,得到第n变量参数;s108、将初始变量参数或第一变量参数或第n变量参数作为ssh多级跳转路径信息。
31.步骤s101,从ssh客户端中确定目标变量参数,目标变量参数可以任意指定,在本实施例中,设置ssh客户端的 sendenv 参数为环境变量参数,例如设置为环境变量参数m。
32.步骤s102,在确定目标变量参数后,根据ssh服务端对目标变量参数进行配置。参照图2,具体包括以下步骤:s201、从ssh服务端中获取匹配参数;s202、基于匹配参数对目标变量参数进行初始配置,得到初始变量参数。
33.在本实施例中,设置ssh服务端中的 acceptenv参数为匹配参数,根据acceptenv参数对环境变量参数进行配置,即acceptenv参数将作为环境变量值,对环境变量参数进行赋值,得到初始变量参数m。同时,在初始情况下,设定用户是在当前设备上进行的本地操作,且当前设备并不是通过ssh跳转登录的,则初步变量参数设定为空值,即得到初始变量参数m={}。
34.步骤s103,当用户操作tty终端从第一设备经过一级ssh跳转登录至第二设备时,第一ssh客户端将初始变量参数发送至第二ssh服务端。在本实施例中,第一ssh客户端通过sendenv将m={}发送至第二设备上的第二ssh服务端。
35.步骤s104,通过第一ssh服务端获取一级连接信息,一级连接信息包括第一设备的第一标志信息和第二设备的第二标志信息,其中,第一标志信息和第二标志信息可以为ip地址、端口、用户名以及连接时间中的任意一种或者多种。在本实施例中,选择第一设备的ip地址作为第一标志信息,选择第二设备的ip地址作为第二标志信息。
36.参照图3,获取一级连接信息包括以下步骤:s301、通过第二ssh服务端获取初始变量参数;s302、基于预设脚本通过第二ssh服务端获取第一标志信息以及第二标志信息。
37.步骤s301,当建立第一ssh客户端和第二ssh服务端之间的连接后,第二设备上的第二ssh服务端会立即开启一个ssh_tty终端,并通过acceptenv功能接收初始变量参数,即m={}。
38.步骤s302,预先为ssh_tty终端配置bashrc(系统变量)脚本(下称预设脚本),在第二ssh服务端获取初始变量参数后,执行预设脚本,获取一级连接信息,即本次ssh跳转连接信息。在本实施例中,通过预设脚本能够获取第一设备的ip地址作为第一标志信息,获取第二设备的ip地址作为第二标志信息,表示此次ssh跳转的源对象为第一设备,目标对象为第二设备。例如,执行预设脚本获取到第一设备的ip地址为x1,第二设备的ip地址为x2,则一级连接信息为(x1,x2)。
39.步骤s105,在获取到一级连接信息后,基于一级连接信息对初始变量参数进行补充配置,由上述可知,初始变量参数为m={},一级连接信息为(x1,x2),则根据(x1,x2)对m={}进行补充配置得到第一变量参数m= m+(x1,x2)={(x1,x2)},一个()表示经过了一级ssh跳转,跳转的源对象为ip地址为x1的第一设备,目的对象为ip地址为x2的第二设备。
40.当第一设备经过了2级跳转至第三设备时,第二ssh客户端将第一变量参数m={(x1,x2)}发送至第三ssh服务端,第三ssh服务端通过执行预设脚本获取到二级连接信息为(x2,x3),即源对象为第二设备,目的对象为第三设备,此时第三ssh服务端根据二级连接信息对第一变量参数进行补充配置,得到第二变量参数m ={(x1,x2),(x2,x3)}。
41.步骤s106-步骤s107,当第一设备经过了n级ssh跳转至第n+1设备后,n为大于2的整数,可知,通过第n+1 ssh服务端获取n级连接信息(xn,xn+1),并根据n级连接信息对第n-1变量参数进行补充配置,得到第n变量参数m={(x1,x2),(x2,x3)
……
(xn,xn+1)}。
42.步骤s108,在当前设备的ssh服务端上获取初始变量参数或第一变量参数或第n变量参数作为ssh多级跳转路径信息。将初始变量参数或第一变量参数或第n变量参数作为ssh多级跳转路径信息进行输出,即可判别当前操作是来自本地设备还是经过多级ssh跳转后的设备。
43.可知,若从当前设备上获取到初始变量参数m={},说明是本地操作;若从当前设备上获取到第一变量参数m={(x1,x2)},说明是本设备是经过1级ssh跳转登录的,跳转路径为:第一设备》》》第二设备;若从当前设备上获取到第n变量参数m={(x1,x2),(x2,x3)
……
(xn,xn+1)},则m信息中的内容就代表该用户操作设备进行多级ssh跳转的路径。
44.至此,登录到第n设备上的ssh用户跳转信息,已经保持在第n设备上的ssh_tty终端环境变量中,操作系统中的任何模块都可访问,该用户的任何操作指令也可进行路径溯源。
45.本技术实施例一种ssh多级跳转路径的构建方法的实施原理为:用户每次进行ssh跳转登录不同的设备时,获取当次的连接信息,并根据连接信息对初始变量参数进行更新,最终得到第n变量参数,通过对第n变量参数解析,即可获取每次的连接信息,继而能够确定ssh多级跳转路径,相较于现有技术,能够在不改变现有ssh客户端和ssh服务端原有组件的
情况下,实现溯源ssh多级跳转的追踪,十分方便。
46.本技术实施例还公开一种ssh多级跳转路径的构建系统,参照图4,包括初始化模块1、发送模块2、获取模块3、处理模块4和输出模块5,发送模块2与初始化模块1连接,获取模块3与发送模块2连接,处理模块4与获取模块3连接,输出模块5与初始化模块1和处理模块4连接。
47.其中,初始化模块1用于获取ssh客户端的目标变量参数,并基于ssh服务端对目标变量参数进行初始配置,得到初始变量参数。
48.具体地,初始化模块1包括初始获取单元11和初始配置单元12,初始获取单元11用于获取ssh客户端的目标变量参数,并从ssh服务端中获取匹配参数;初始配置单元12用于基于匹配参数对目标变量参数进行初始配置,得到初始变量参数。
49.更具体地,初始获取单元11从ssh客户端中确定目标变量参数,其中,目标变量参数可以任意指定,在本实施例中,设置ssh客户端的 sendenv 参数为环境变量参数,例如设置为环境变量参数m。
50.更具体地,初始获取单元11还获取ssh服务端中的 acceptenv参数为匹配参数,初始配置单元12根据acceptenv参数对环境变量参数进行配置,即acceptenv参数将作为环境变量值,初始配置单元12对环境变量参数进行赋值,得到初始变量参数m。例如,在初始情况下,假设环境变量值为空,即得到初始变量参数m={}。
51.当第一设备经过1级ssh跳转至第二设备时:发送模块2用于通过第一ssh客户端将初始变量参数发送至第二ssh服务端。具体地,当用户操作tty终端从第一设备经过一级ssh跳转登录至第二设备时,发送模块2通过第一ssh客户端将初始变量参数发送至第二ssh服务端。在本实施例中,发送模块2控制第一ssh客户端通过sendenv将m={}发送至第二设备上的第二ssh服务端。
52.其中,获取模块3用于通过第二ssh服务端获取一级连接信息。具体地,获取模块3通过第一ssh服务端获取一级连接信息,一级连接信息包括第一设备的第一标志信息和第二设备的第二标志信息,其中,第一标志信息和第二标志信息可以为ip地址、端口、用户名以及连接时间中的任意一种或者多种。在本实施例中,选择第一设备的ip地址作为第一标志信息,选择第二设备的ip地址作为第二标志信息。
53.具体地,获取模块3包括接收单元31和信息获取单元32,接收单元31用于通过第二ssh服务端获取初始变量参数,信息获取单元32用于基于预设脚本通过第二ssh服务端获取第一标志信息以及第二标志信息。
54.更具体地,当建立第一ssh客户端和第二ssh服务端之间的连接后,接收单元31控制第二设备上的第二ssh服务端立即开启一个ssh_tty终端,并通过acceptenv功能接收初始变量参数,即m={}。
55.更具体地,信息获取单元32预先为ssh_tty终端配置bashrc(系统变量)脚本(下称预设脚本),在第二ssh服务端获取初始变量参数后,信息获取单元32执行预设脚本,获取一级连接信息,即本次ssh跳转连接信息。在本实施例中,信息获取单元32通过预设脚本能够获取第一设备的ip地址作为第一标志信息,获取第二设备的ip地址作为第二标志信息,表示此次ssh跳转的源对象为第一设备,目标对象为第二设备。例如,执行预设脚本获取到第一设备的ip地址为x1,第二设备的ip地址为x2,则一级连接信息为(x1,x2)。
56.其中,处理模块4用于基于一级连接信息对初始变量参数进行补充配置,得到第一变量参数。
57.具体地,处理模块4在获取到一级连接信息后,基于一级连接信息对初始变量参数进行补充配置,由上述可知,初始变量参数为m={},一级连接信息为(x1,x2),则处理模块4根据(x1,x2)对m={}进行补充配置得到第一变量参数m= m+(x1,x2)={(x1,x2)},一个()表示经过了一级ssh跳转,跳转的源对象为ip地址为x1的第一设备,目的对象为ip地址为x2的第二设备。
58.当第一设备经过了2级跳转至第三设备时,发送模块2控制第二ssh客户端将第一变量参数m={(x1,x2)}发送至第三ssh服务端,获取模块3控制第三ssh服务端通过执行预设脚本获取到二级连接信息为(x2,x3),即源对象为第二设备,目的对象为第三设备,此时处理模块4控制第三ssh服务端根据二级连接信息对第一变量参数进行补充配置,得到第二变量参数m ={(x1,x2),(x2,x3)}。
59.当第一设备经过了n级ssh跳转至第n+1设备后,n为大于2的整数,可知,获取模块3控制第n+1 ssh服务端获取n级连接信息(xn,xn+1),处理模块4根据n级连接信息对第n-1变量参数进行补充配置,得到第n变量参数m={(x1,x2),(x2,x3)
……
(xn,xn+1)}。
60.其中,输出模块5在当前设备的ssh服务端上获取初始变量参数或第一变量参数或第n变量参数作为ssh多级跳转路径信息。将初始变量参数或第一变量参数或第n变量参数作为ssh多级跳转路径信息进行输出,即可判别当前操作是来自本地设备还是经过多级ssh跳转后的设备。
61.可知,若从当前设备上获取到初始变量参数m={},说明是本地操作;若从当前设备上获取到第一变量参数m={(x1,x2)},说明是本设备是经过1级ssh跳转登录的,跳转路径为:第一设备》》》第二设备;若从当前设备上获取到第n变量参数m={(x1,x2),(x2,x3)
……
(xn,xn+1)},则m信息中的内容就代表该用户操作设备进行多级ssh跳转的路径。
62.至此,登录到第n设备上的ssh用户跳转信息,已经保持在第n设备上的ssh_tty终端环境变量中,操作系统中的任何模块都可访问,该用户的任何操作指令也可进行路径溯源。
63.本技术实施例一种ssh多级跳转路径的构建系统的实施原理为:用户每次进行ssh跳转登录不同的设备时,获取模块3获取当次的连接信息,处理模块4根据连接信息对初始变量参数进行更新,最终得到第n变量参数,通过对第n变量参数解析,即可获取每次的连接信息,继而能够确定ssh多级跳转路径,相较于现有技术,能够在不改变现有ssh客户端和ssh服务端原有组件的情况下,实现溯源ssh多级跳转的追踪,十分方便。
64.本技术实施例还公开一种终端设备,包括存储器、处理器以及存储在存储器中并能够在处理器上运行的计算机程序,其中,处理器执行计算机程序时,采用了上述实施例中的一种ssh多级跳转路径的构建方法。
65.其中,终端设备可以采用台式电脑、笔记本电脑或者云端服务器等计算机设备,并且,终端设备包括但不限于处理器以及存储器,例如,终端设备还可以包括输入输出设备、网络接入设备以及总线等。
66.其中,处理器可以采用中央处理单元(cpu),当然,根据实际的使用情况,也可以采
用其他通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,通用处理器可以采用微处理器或者任何常规的处理器等,本技术对此不做限制。
67.其中,存储器可以为终端设备的内部存储单元,例如,终端设备的硬盘或者内存,也可以为终端设备的外部存储设备,例如,终端设备上配备的插接式硬盘、智能存储卡(smc)、安全数字卡(sd)或者闪存卡(fc)等,并且,存储器还可以为终端设备的内部存储单元与外部存储设备的组合,存储器用于存储计算机程序以及终端设备所需的其他程序和数据,存储器还可以用于暂时地存储已经输出或者将要输出的数据,本技术对此不做限制。
68.其中,通过本终端设备,将上述实施例中的一种ssh多级跳转路径的构建方法存储于终端设备的存储器中,并且,被加载并执行于终端设备的处理器上,方便使用。
69.本技术实施例还公开一种计算机可读存储介质,并且,计算机可读存储介质存储有计算机程序,其中,计算机程序被处理器执行时,采用了上述实施例中的一种ssh多级跳转路径的构建方法。
70.其中,计算机程序可以存储于计算机可读介质中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间件形式等,计算机可读介质包括能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom)、随机存取存储器(ram)、电载波信号、电信信号以及软件分发介质等,需要说明的是,计算机可读介质包括但不限于上述元器件。
71.其中,通过本计算机可读存储介质,将上述实施例中的一种ssh多级跳转路径的构建方法存储于计算机可读存储介质中,并且,被加载并执行于处理器上,以方便上述方法的存储及应用。
72.以上均为本技术的较佳实施例,并非依此限制本技术的保护范围,故:凡依本技术的结构、形状、原理所做的等效变化,均应涵盖于本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1