CN116980180A - 数据传输方法、装置及系统 - Google Patents
数据传输方法、装置及系统 Download PDFInfo
- Publication number
- CN116980180A CN116980180A CN202310731083.0A CN202310731083A CN116980180A CN 116980180 A CN116980180 A CN 116980180A CN 202310731083 A CN202310731083 A CN 202310731083A CN 116980180 A CN116980180 A CN 116980180A
- Authority
- CN
- China
- Prior art keywords
- ssh
- message
- computing device
- control unit
- client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 86
- 230000005540 biological transmission Effects 0.000 title claims abstract description 64
- 238000004891 communication Methods 0.000 claims description 46
- 230000015654 memory Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 7
- 238000012986 modification Methods 0.000 abstract description 6
- 230000004048 modification Effects 0.000 abstract description 6
- 238000006243 chemical reaction Methods 0.000 description 43
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 206010047289 Ventricular extrasystoles Diseases 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000013515 script Methods 0.000 description 8
- 238000005129 volume perturbation calorimetry Methods 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/18—Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/166—Implementing security features at a particular protocol layer at the transport layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/326—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the transport layer [OSI layer 4]
Abstract
一种数据传输方法、装置及系统。该方法包括:服务端获取控制单元向第二计算设备发送的第一SSH报文;在服务端在确认第一SSH报文为控制单元向第二计算设备发送的首个SSH报文的情况下,建立服务端和客户端之间的可信数据通道;服务端通过控制单元和服务端之间的SSH数据通道接收控制单元向第二计算设备发送的第二SSH报文,第二SSH报文包括用于控制第二计算设备的控制指令;服务端将第二SSH报文转换为非SSH协议的第一报文,并通过可信数据通道向客户端发送所第一报文。该方法可以在无需对SSH工具进行侵入式修改的情况下,解除SSH工具对人机密码的依赖。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置及系统。
背景技术
安全外壳(secure shell,SSH)协议是一种远程登陆服务器等计算设备的标准协议。SSH协议为一种加密协议,通过对密码进行加密传输验证,可以在不安全的网络中对网络服务提供安全的传输环境。当有大批量的服务器需要管理时,往往需要基于SSH协议开发一系列自动化脚本或工具,这些自动化脚本或工具向被管理的服务器发送SSH报文,以实现服务器的自动化管理。
基于SSH协议开发的自动化脚本或工具需要先登陆服务器,才能实现对服务器。而根据SSH协议,登陆服务器需要密码。因此,自动化脚本或工具在管理多个服务器时,需要每个服务器的密码来登陆该服务器。出于信息安全的考虑,服务器的密码往往被定期修改。使得自动化脚本或工具重新获取各服务器的密码,导致密码管理成本高,自动化脚本或工具使用繁琐。一种方案为SSH工具进行重构,使得SSH工具不依赖计算设备的人机密码。重构为侵入式修改,操作繁琐,并且需要SSH工具的源代码,而有的第三方SSH工具的源代码获取不到。
发明内容
本申请的实施例提供一种数据传输方法、装置及系统,可以在无需对SSH工具进行侵入式修改的情况下,解除SSH工具对人机密码的依赖。
第一方面,提供了一种数据传输方法,应用于数据传输系统中的服务端,数据传输系统还包括客户端,服务端配置于具有控制单元的第一计算设备,客户端配置于第二计算设备,控制单元用于向第二计算设备发送SSH报文;该方法包括:服务端获取控制单元向第二计算设备发送的第一SSH报文;在服务端在确认第一SSH报文为控制单元向第二计算设备发送的首个SSH报文的情况下,建立服务端和客户端之间的可信数据通道;服务端通过控制单元和服务端之间SSH数据通道接收控制单元向第二计算设备发送的第二SSH报文,第二SSH报文包括用于控制第二计算设备的控制指令;服务端将第二SSH报文转换为非SSH协议的第一报文,并通过可信数据通道向客户端发送所第一报文,第一报文包括控制指令;控制指令用于客户端控制第二计算设备。
其中,控制单元可以为基于SSH协议的控制单元,例如SSH工具。第二SSH报文为非首个从控制单元发送的目标地址为第二计算设备的SSH报文。
所建立的服务端和客户端之间的可信数据通道可以是通过传输层安全性协议(transport layer security,TLS)的协议建立的。该可信数据通道可以防止所传输的数据被窃取以及被篡改。
其中,非SSH协议的报文是指非SSH报文,即基于SSH协议之外的协议的报文。在在一个例子中,非SSH协议报文可以为传输控制协议(transmission control protocol,TCP)报文。
在该方法中,服务端可以将SSH报文转换为非SSH协议的报文,并将该报文发送至第二计算设备。第二计算设备上的客户端可以基于该报文中的控制指令控制第二计算设备。由此,可以解除基于SSH协议的控制单元在管理被管理设备时的人机密码依赖,使得无需对大量的被管理设备的人机密码进行维护。并且,该方法的实现无需对已有的依赖SSH协议的控制单元进行侵入式修改(例如重构),可以兼容已有的依赖SSH协议的控制单元以及SSH报文。
在一种可能的实现方式中,可信数据通道是在服务端确认客户端可信,以及客户端确信服务端可信的情况下建立的。
在该实现方式中,在服务端和客户端确认对方可信的情况下,建立服务端和客户端之间的数据通道,保障了服务端和客户端之间的信息安全。
在一种可能的实现方式中,可信数据通道是通过第二计算设备上的客户端启动时和服务端建立的可信控制信道建立的。
在一种可能的实现方式中,数据传输系统还包括配置在第一计算设备上的拦截转发模块;拦截转发模块用于拦截控制单元发出的报文,并在拦截到第一SSH报文时,将第一SSH报文转发至服务端,使得服务端获取第一SSH报文。
在该实现方式中,还设置拦截转发模块,通过拦截转发模块可以将控制单元发出的SSH报文拦截,使得SSH报文被转发到服务端,进而在服务端进行协议转换。
在一种可能的实现方式中,拦截转发模块拦截到的第一SSH报文的目的地址为第二计算设备的网络地址,将第一SSH报文转发至服务端包括:拦截转发模块在确认第一SSH报文为控制单元向第二计算设备发送的首个SSH报文的情况下,将第二计算设备的网络地址携带在第一SSH报文中,并将第一SSH报文的目的地址更新为服务端的网络地址,以将更新后的第一SSH报文转发到服务端。
在一种可能的实现方式中,该方法还包括:服务端通过可信数据通道接收客户端发送的第二报文,第二报文包括客户端基于控制指令控制第二计算设备的结果;服务端将第二报文转换为第三SSH报文,并通过SSH数据通道向控制单元发送第三SSH报文,第三SSH报文包括客户端基于控制指令控制第二计算设备的结果。
在该实现方式中,服务端还可以将客户端发送的报文转换为SSH报文,并将SSH报文发送至控制单元,如此,控制单元可以按照SSH协议处理相关报文,实现了对现有的基于SSH协议的控制单元的兼容。
在一种可能的实现方式中,客户端基于控制指令控制第二计算设备的结果包括:客户端在第二计算设备执行控制指令的执行结果。
在一种可能的实现方式中,该方法还包括:当第二SSH报文对应的用户和客户端前期连接的用户不一致时,执行用户切换操作,并从客户端接收切换结果,切换结果用于表示第二计算设备连接的用户切换为了第二SSH报文对应的用户;向控制单元发送切换结果。
在该实现方式中,在第二SSH报文对应的用户和客户端前期连接的用户不一致时,可以切换客户端连接的用户,从而方便客户端在第二计算设备执行报文中的命令。
在一种可能的实现方式中,用户切换操作包括:指示控制单元提供密码输入指示;所述向控制单元发送切换结果包括在从控制单元接收到密码时,向控制单元发送切换结果。
在该实现方式中,可以模拟密码输入,从而避免对控制单元的修改,从而兼容现有的基于SSH协议的控制单元。
在一种可能的实现方式中,该方法还包括:在第二计算设备连接的用户发生变化时,指示客户端配置变化后的用户对应的环境变量。如此,可以及时调整环境变量,方便命令的执行。
第二方面,提供了一种数据传输方法,应用于数据传输系统,数据传输系统还包括服务端和客户端,服务端配置于具有控制单元的第一计算设备,客户端配置于第二计算设备,控制单元用于向第二计算设备发送SSH报文;该方法包括:服务端获取控制单元向第二计算设备发送的第一SSH报文;在服务端在确认第一SSH报文为控制单元向第二计算设备发送的首个SSH报文的情况下,建立服务端和客户端之间的可信数据通道;服务端通过控制单元和服务端之间的SSH数据通道接收控制单元向第二计算设备发送的第二SSH报文;第二SSH报文包括用于控制第二计算设备的控制指令;服务端将第二SSH报文转换为非SSH协议的第一报文,并通过可信数据通道向客户端发送所第一报文,第一报文包括控制指令;客户端基于控制指令控制第二计算设备。
在一种可能的实现方式中,数据传输系统还包括配置在第一计算设备上的拦截转发模块;该方法还包括:拦截转发模块拦截控制单元发出的报文,并在拦截到第一SSH报文时,将第一SSH报文转发至服务端,使得服务端获取第一SSH报文。
在一种可能的实现方式中,该方法还包括:客户端通过可信数据通道向服务端发送第二报文,第二报文包括客户端基于控制指令控制第二计算设备的结果;服务端用于将第二报文转换为第三SSH报文,并通过SSH数据通道向控制单元发送第三SSH报文,第三SSH报文包括客户端基于控制指令控制第二计算设备的结果。
第三方面,提供了一种数据传输装置,配置于数据传输系统中的服务端,数据传输系统还包括客户端,服务端配置于具有控制单元的第一计算设备,客户端配置于第二计算设备,控制单元用于向第二计算设备发送SSH报文;该装置包括:获取模块、建立模块、通信模块;其中,获取模块用于获取控制单元向第二计算设备发送的第一SSH报文;建立模块用于在服务端在确认第一SSH报文为控制单元向第二计算设备发送的首个SSH报文的情况下,建立服务端和客户端之间的可信数据通道;通信模块用于通过控制单元和服务端之间的SSH数据通道接收控制单元向第二计算设备发送的第二SSH报文,第二SSH报文包括用于控制第二计算设备的控制指令;通信模块还用于将第二SSH报文转换为非SSH协议的第一报文,并通过可信数据通道向客户端发送所第一报文,第一报文包括控制指令;控制指令用于客户端控制第二计算设备。
在一种可能的实现方式中,通信模块还用于通过可信数据通道接收客户端发送的第二报文,第二报文包括客户端基于控制指令控制第二计算设备的结果;通信模块还用于将第二报文转换为第三SSH报文,并通过SSH数据通道向控制单元发送第三SSH报文,第三SSH报文包括客户端基于控制指令控制第二计算设备的结果。
在一种可能的实现方式中,该装置还包括:切换模块;切换模块用于当第二SSH报文对应的用户和客户端前期连接的用户不一致时,执行用户切换操作,并从客户端接收切换结果,切换结果用于表示第二计算设备连接的用户切换为了第二SSH报文对应的用户;通信模块还用于向控制单元发送切换结果。
在一种可能的实现方式中,通信模块还用于在第二计算设备连接的用户发生变化时,指示客户端配置变化后的用户对应的环境变量。
第四方面,提供了一种数据传输系统,其特征在于,包括服务端和客户端,服务端配置于具有控制单元的第一计算设备,客户端配置于第二计算设备,控制单元用于向第二计算设备发送SSH报文;其中,服务端用于获取控制单元向第二计算设备发送的第一SSH报文;在服务端用于在确认第一SSH报文为控制单元向第二计算设备发送的首个SSH报文的情况下,建立服务端和客户端之间的可信数据通道;服务端用于通过控制单元和服务端之间的SSH数据通道接收控制单元向第二计算设备发送的第二SSH报文,第二SSH报文包括用于控制第二计算设备的控制指令;服务端将第二SSH报文转换为非SSH协议的第一报文,并通过可信数据通道向客户端发送所第一报文,第一报文包括控制指令;客户端用于基于控制指令,控制第二计算设备。
第五方面,提供了一种计算设备集群,包括至少一个计算设备,每个计算设备包括处理器和存储器;至少一个计算设备的处理器用于执行至少一个计算设备的存储器中存储的指令,以使得计算设备集群执行第一方面提供的方法。
第六方面,提供了一种计算机可读存储介质,包括计算机程序指令,当计算机程序指令由计算设备集群执行时,计算设备集群执行第一方面提供的方法。
第七方面,提供了一种包含指令的计算机程序产品,当指令被计算机设备集群运行时,使得计算机设备集群执行第一方面提供的方法。
第二方面至第七方面的有益效果可参考上文对第一方面的有益效果的介绍,在此不再赘述。
附图说明
图1为本申请实施例提供的一种系统架构的示意图;
图2为本申请实施例提供的一种数据传输方法的流程图;
图3为本申请实施例提供的一种被管理设备和管理设备间进行可信验证的示意图;
图4为本申请实施例提供的一种数据传输方法的示意图;
图5为本申请实施例提供的一种拦截转发模块所执行操作的示意图;
图6为本申请实施例提供的一种协议转换模块所执行操作的示意图;
图7为本申请实施例提供的一种数据传输方法的流程图;
图8为本申请实施例提供的一种数据传输装置的结构示意图;
图9为本申请实施例提供的一种计算设备的结构示意图;
图10为本申请实施例提供的一种计算设备集群的结构示意图;
图11为本申请实施例提供的一种计算设备集群的结构示意图。
具体实施方式
下面通过附图和实施例,对本申请的技术方案做进一步的详细描述。其中,在本申请施例中,“多个”是指两个或两个以上。
SSH协议开发的、用于管理多个计算设备的自动化脚本或工具,可以简称为SSH工具。SSH工具可以通过内置实现的SSH协议与被管理的计算设备建立并管理SSH连接会话。SSH工具通过与被管理的计算设备之间的SSH连接会话,在被管理的计算设备上,基于命令行或脚本自动执行任务,例如在被管理的计算设备上,创建和管理用户帐户、传输文件和执行命令等。
为了保障信息安全,用于登陆服务器等计算设备的密码经常需要修改。并且密码可能存在有效期,若密码过期,则需要设置新的密码。这些均导致SSH工具在使用过程中,不断更新各个计算设备的人机密码,对计算设备的管理过程繁琐。而重构SSH工具的操作繁琐,且需要源代码,导致实施难道大。
人机密码本申请实施例提供了一种数据传输方法,可以在无需重构SSH工具的情况下,解除了SSH工具对计算设备的人机密码的依赖,使得SSH工具无需计算设备的人机密码就可以实现对计算设备的管理。
接下来,介绍本申请实施例提供的数据传输方法。
图1示出了系统架构100,系统架构100可用于实施本申请实施例提供数据传输方法。如图1所示,系统架构100包括管理设备100和多个被管理设备,例如被管理设备200A、被管理设备200B。管理设备100也称控制中心,用于管理被管理设备,例如查看被管理设备的目录文件、指示被管理设备执行命令、指示被管理设备接收文件或发送文件的控制指令等。被管理设备也称业务设备,用于运行业务程序,执行相关业务。被管理设备接收管理设备的管理,以执行相关任务。
在一些实施例中,在系统架构100中,管理设备100为一个,被管理设备有多个。
其中,当对管理设备和被管理设备不做特别区分时,它们可被简称为计算设备。
在一些实施例中,计算设备可以通过硬件方式实现,例如计算设备可以为服务器。在一些实施例中,计算设备可以通过软件方式实现,例如计算设备可以为虚拟机(virtualmachine,VM)、容器(container)等虚拟设备。
如图1所示,管理设备100配置有服务端110、控制单元120和拦截转发模块130,被管理设备配置有客户端210。其中,控制单元120可以为SSH工具,用于通过SSH报文管理被管理设备。服务端110、客户端210、拦截转发模块130所在的数据传输系统,其中,拦截转发模块130用于拦截控制单元120向被管理设备200的SSH报文,并将拦截到的SSH报文转发至服务端110。服务端110用于将SSH报文转换为非SSH协议的报文,并将该报文发送至客户端210。客户端210用于该报文进行相关操作,例如对被管理设备进行管理或控制。
其中,非SSH协议报文是基于SSH协议之外的通信协议(例如TCP协议)生成并传输的数据报文。与SSH报文这一基于SSH协议的报文相对,非SSH协议报文是指无需通过人机密码登陆被管理设备,就可以被被管理设备接收,并解析的报文。
其中,管理设备100上的控制单元120是向被管理设备发送SSH报文的唯一入口。也就是说,仅配置在管理设备100的控制单元120能够发送目的地址(destination)为被管理设备的SSH报文。其中,SSH报文是基于SSH协议生成并传输的数据报文。SSH报文可以携带管理被管理设备的控制指令,例如,用于查看被管理设备的目录文件的控制指令、用于指示被管理设备接收文件或发送文件的控制指令等。
在一些实施例中,如图1所示,管理设备100还配置有权限管理模块140。权限管理模块140用于管理或限制利用管理设备100向被管理设备发送SSH报文的用户。权限管理模块140提供了管理设备100的用户权限认证机制,只有通过认证的用户才能通过管理设备100上的控制单元120向被管理设备发送SSH报文。
在一些实施例中,用户权限认证机制可以为账户、密码认证机制,也就是说,在用户输入正确的账户,以及与该账户匹配的密码的情况下,才能通过认证。在一些实施例中,权限管理模块140可以为配置在管理设备100上的一个或多个进程(process)或线程(thread)。
如图1所示,服务端110包括协议转换模块111和通道管理模块112。其中,协议转换模块111用于将来自控制单元120的SSH报文转换为非SSH协议报文。
在一些实施例中,服务端110可以为配置在管理设备100上的进程,协议转换模块111和通道管理模块112可以分别为该进程中的不同线程。
在一些实施例中,拦截转发模块130可以基于扩展伯克利包过滤器(extendedberkeley packet filter,eBPF)实现。在一个示例中,拦截转发模块130可以基于祼套接字(socket)编程实现。在一个示例中,拦截转发模块130可以基于Linux内核模块方式实现。等等,此处不再一一列举。
在一些实施例中,拦截转发模块130可以为配置在管理设备100上的一个或多个进程或线程。
通道管理模块112用于建立服务端110和位于被管理设备的客户端210之间的可信数据通道。可信数据通道是通过被管理设备的客户端210启动时和服务端110之间建立的可信控制通道建立的。另外,服务端110和控制单元120之间具有SSH通道。其中,SSH通道是按照SSH协议建立的、用于传输SSH报文的数据通道。
通道管理模块112可以从协议转换模块111接收非SSH协议的报文,并通过可信数据通道将该报文发送至被管理设备。
通道管理模块112还可以通过可信数据通道接收被管理设备发送的非SSH协议的报文。通道管理模块112将接收到非SSH协议的报文发送至协议转换模块111。协议转换模块111可以将非SSH协议的报文转换为SSH报文,并转换得到的SSH报文发送至控制单元120。由此,可以完成控制单元120和被管理设备之间的信息交互,实现控制单元120对被管理设备的管理。
被管理设备上的客户端210用于通过可信数据通道,接收来自管理设备100的非SSH协议的报文,并解析该报文。若该报文携带有控制指令,客户端210可以基于该控制指令,控制被管理设备,例如在被管理设备上运行该控制指令,以实现该控制指令对应的操作或功能,例如查看目录文件的控制指令、接收文件或发送文件等。
在一些实施例中,客户端210可以为配置在被管理设备上的一个或多个进程或线程。
其中,客户端210在被管理设备上运行时,默认以最高操作权限运行,即默认客户端210或被管理设备被具有最高权限的用户登陆。具体而言,被管理设备可以由不同操作权限的用户,有的(例如根(root)用户)用户具有高操作权限,有的用户(例如普通用户)具有低操作权限。其中,低操作权限的操作范围是高操作权限的操作范围的子集。也就是说,高操作权限的用户可以在低操作权限的操作范围内进行操作。
上文示例介绍了本申请实施例提供的系统架构100。接下来,结合系统架构100,介绍本申请实施例提供的数据传输方法的流程。
参阅图2,以管理设备100对被管理设备200A进行管理为例,位于管理设备100上的控制单元120可以执行步骤301,向被管理设备200A发送SSH报文A1。即控制单元120发送目的地为被管理设备200A的SSH报文A1。
服务端110获取SSH报文A1。在一些实施例中,管理设备100配置有拦截转发模块130。服务端110可以通过拦截转发模块130获取SSH报文A1。具体而言,拦截转发模块130可以拦截控制单元110发出的SSH报文。在拦截到的SSH报文A1时,拦截转发模块130可以判断SSH报文A1是否为控制单元120发向被管理设备200A的首个SSH报文。示例性的,可以通过查看SSH报文A1的标识符是否为SSH_MSG_KEXINIT,来判断SSH报文A1是否为控制单元120发向被管理设备200A的首个SSH报文。其中,若SSH报文A1的标识符为SSH_MSG_KEXINIT,则可以确认SSH报文A1为控制单元120发向被管理设备200A的首个SSH报文。
若SSH报文A1为控制单元120发向被管理设备200A的首个SSH报文,则在步骤302中,确认SSH报文A1为发向被管理设备200A的首个SSH报文,然后,通过步骤303,可以将SSH报文A1作为针对被管理设备200A的SSH连接请求,发送至服务端110在管理设备110本地监听的通信地址。示例性的,该通信地址可以为网际互连协议(internet protocol,I P)地址,或者为尤内克斯套接字(unix socket)。SSH报文A1发送至该通信地址后,服务端110可以获取SSH报文A1。示例性的,该通信地址具有由服务端110中的协议转换模块111监听,该通信地址可被称为协议转换模块111的通信地址。
协议转换模块111在接收到针对被管理设备200A的SSH连接请求时,可以通过步骤304,向通道管理模块112发送针对被管理设备200A的通道建立请求。针对被管理设备200A的通道建立请求用于请求通道管理模块112建立服务端110和被管理设备200A之间的数据通道。
通道管理模块112在接收到针对被管理设备200A的通道建立请求时,可以通过被管理设备200A上的客户端210启动时和服务端110建立的可信控制通道,和被管理设备200A上的客户端210进行协商,以建立可信数据通道。其中,如图2所示,在协商过程中,通道管理模块112可以通过步骤305,向被管理设备200A上的客户端210发送通道建立申请。客户端210在接收到通道建立申请后,可以通过步骤306,向通道管理模块112发送通道建立响应,以完成可信数据通道的建立。
在一些实施例中,为了防止中间人攻击,通道管理模块112可以在确认被管理设备200A可信的情况下,向被管理设备200A上的客户端210发送通道建立申请,以保障被管理设备200A的客户端210和通道管理模块112之间的数据通道是可信的。客户端210可以在确认管理设备100可信的情况下,向管理设备100上的通道管理模块112发送通道建立相应,以保障被管理设备200A的客户端210和通道管理模块112之间的数据通道是可信的。
在一些实施例中,参阅图3,用户,例如运维人员可以在管理设备100配置权限管理模块140。然后,可以执行步骤401a,将预先生成的数字证书发送至被管理设备。具体而言,可以预先通过证书颁发机构(certificate authority,CA)获取数字证书。在被管理设备安装客户端210时,可以将数字证书连同客户端210的安装包发给被管理设备。
或者,可以执行步骤401b,在服务端110配置通信白名单。位于通信白名单的中设备为可信设备。
客户端210安装到被管理设备200A上后,在步骤402,可以启动管理设备200A上的客户端210。
在管理设备200A上的客户端210和通道管理模块112之间建立可信数据通道之前,通道管理模块112可以通过步骤403,验证被管理设备200A是否可信。具体如下。
其中,当步骤401a得以执行时,通道管理模块112在向被管理设备200A上的客户端210发送通道建立申请之前,在验证数字证书合法,以及通过安全传输层协议(transportlayer security,TLS)认证机制验证后,可以执行步骤305,向被管理设备200A上的客户端210发送通道建立申请。
当步骤401b得以执行时,通道管理模块112在向被管理设备200A上的客户端210发送通道建立申请之前,可以判断被管理设备200A是否在通信白名单中,若管理设备200A在通信白名单中,则可以执行步骤305,向被管理设备200A上的客户端210发送通道建立申请。
在一些实施例中,可以预先通过证书颁发机构获取数字证书。客户端210在执行步骤306之前,可以验证数字证书是否合法,若合法,则执行步骤306。
另外,在步骤401a或步骤401b之后,用户可以在管理设备100安装拦截转发模块130等。然后,用户可以登陆权限管理模块140,以通过控制单元120,管理被管理设备。
在一些实施例中,可信数据通道也可以通过客户端210监听端口,服务端110按需连接的方式实现。
回到图2,在一些实施例中,通道管理模块112在通道管理模块112与被管理设备200A之间的可信数据通道建立成功后,通道管理模块112可以通过步骤307,向协议转换模块111发送通道建立成功信息。通道建立成功信息表示通道管理模块112与被管理设备200A之间的可信数据通道已建立。
在一些实施例中,通道管理模块112在通道管理模块112与被管理设备200A之间的可信数据通道建立失败后,可以向协议转换模块111发送通道建立失败信息。协议转换模块111可以向控制单元120发送该通道建立失败信息。控制单元120在接收到该通道建立失败信息时,可以提供提示信息,该提示信息表示通道管理模块112与被管理设备200A之间的可信数据通道建立失败。
在步骤308,控制单元120和协议转换模块111可基于SSH协议,协商建立SSH通道。
控制单元120可以执行步骤309,通过该SSH通道,发送目的地为被管理设备200A的SSH报文A2。其中,SSH报文A2和SSH报文A1并非同一报文,SSH报文A2是在SSH报文A1发送之后才发送的报文。
协议转换模块111在接收到SSH报文A2之后,可以在步骤310,对SSH报文A2进行协议转换,将SSH报文A2转换为非SSH协议的报文B1。
在一些实施例中,协议转换模块111可以通过解析SSH报文A2,获取SSH报文A2的目的地址,即被管理设备200的地址,以及获取SSH报文A2所携带的控制指令。协议转换模块111可以以被管理设备200的地址为目的地址、以该控制指令为数据负载(payload),基于SSH协议之外的协议(例如TCP协议),封装报文,得到报文B1。
在一些实施例中,协议转换模块111可以对接收到的SSH报文进行分类。其中,SSH报文分为命令类报文和文件传输类报文。其中,命令类报文的数据负载为控制指令,文件传输类报文的数据负载为所传输的文件。对于命令类报文,为了实现免密用户切换,可能需要对用户切换的部分进行相应适配。这是因为该方案中被管理设备上的客户端默认以根用户权限运行。若发起连接的用户为普通用户(即非根用户),则需要对命令执行进行切换。
在一个例子中,可以设定SSH报文的正则匹配到是切换到根用户,而前期连接被管理设备200A上的客户端210是普通用户,则协议转换模块111执行的用户切换操作为退出(exit)命令,并且空跑后面一轮输入密码所需要的send()函数和recv()函数,得到用户切换到根用户对应的回显字符串。例如,SSH报文:sudo su–root,那么得到的用于返回给控制单元120的回显字符串为:sudo su-root\n\r[sudo]password for root。
在一个例子中,可以设定SSH报文的正则匹配到是切换到非根用户,而前期连接被管理设备200A上的客户端210的用户是从普通用户切换来的根用户,则返回给控制单元120的回显字符串为:su-s/bin/bash前一个普通用户。
在一些实施例中,若协议转换模块111接收到的SSH报文对应的用户和客户端210前期连接的用户不一致,协议转换模块111可以执行用户切换操作,并从被管理设备200A收到切换结果。切换结果用于表示前期连接被管理设备200A的用户已切换到报文对应的用户。协议转换模块111可以将该切换结果发送至控制单元120,以通知控制单元120的管理被管理设备200A的用户已切换到了报文对应的用户。
在该实施例的一个示例中,用户切换操作还包括:指示控制单元120提供密码输入指示,当从控制单元120接收到密码时,可以向控制单元120发送上述切换结果。
在一些实施例中,若协议转换模块111接收到的SSH报文对应的用户和客户端210前期连接的用户不一致,协议转换模块111指示被管理设备200A上的客户端210配置该SSH报文对应的用户对应的环境变量。其中,环境变量可以包括路径(path)环境变量、全局变量等。在一个例子中,设定客户端210前期连接的用户为su-sopuser,若协议转换模块111接收到的SSH报文对应的用户为sopuser,则需要在SSH报文的命令前添加source/etc/profile;cd~\n。若协议转换模块111接收到的SSH报文对应的用户为sopuser为su-sopuser,就不用额外处理。
协议转换模块111在对接收到的SSH报文进行上述处理后,可以将转换得到的非SSH协议的报文发送至通道管理模块112。以由SSH报文A2转换得到的报文B1为例,协议转换模块111可以通过步骤311,将报文B1发送至通道管理模块112。
通道管理模块112在接收到报文B1时,可以在步骤312,通过服务端110和被管理设备200A之间可信数据通道,将报文B1发送至被管理设备200A。其中,被管理设备200A上的客户端210可以在步骤313,接收报文B1,并解析报文B1,提取报文B1中的控制指令,然后,可以基于该控制指令,控制被管理设备200A。示例性的,基于该控制指令,客户端210控制被管理设备200A可以为客户端210指示被管理设备200A运行该控制指令,或者,客户端210在被管理设备200A运行该控制指令。
客户端210可以基于SSH协议之外的通信协议(例如TCP),将客户端210基于控制指令控制被管理设备200A的结果,封装为报文B2。示例性的,客户端210基于控制指令控制被管理设备200A的结果具体是客户端210在被管理设备200A执行控制指令的执行结果。
客户端210可以在步骤314,通过服务端110和被管理设备200A之间可信数据通道,将报文B2发送至服务端110。服务端110的通道管理模块112接收到报文B2,并将报文B2通过步骤315发送至协议转换模块111。
协议转换模块111在接收到报文B2后,可以执行步骤316,对报文B2进行协议转换,得到SSH报文A3。协议转换模块111可以解析报文B2,得到报文B2的数据负载,即客户端210基于控制指令控制被管理设备200A的结果。然后,协议转换模块111按照SSH协议,将该数据负载作为SSH报文的数据负载,得到SSH报文A3。
协议转换模块111可以在步骤317,通过协议转换模块111和控制单元120之间的SSH通道,将SSH报文A3发送至控制单元120。
本申请实施例提供的数据传输方法,可以将SSH报文转换为非SSH协议的报文,使得管理设备在无需对基于SSH协议的控制单元进行重构的情况下,不依赖密码,实现对被管理设备的管理。
上文示例介绍了本申请实施例提供的数据传输方法的总体流程。接下来,结合图4,对本申请实施例提供的数据传输方法的一种可能实现方式。
参阅图4,控制单元120可以发送目的地址为被管理设备200A的地址、源地址为控制单元120的地址的报文,例如SSH报文A1。拦截转发模块130拦截到SSH报文A1,可以将SSH报文A1的目的地址修改为服务端110的地址(即服务端110监听的地址),以及将被管理设备200A的地址承载在报文的数据负载中。目的地址被修复为服务端110的地址的SSH报文A1被转发到服务端110。服务端110可以基于SSH报文A1的数据负载中的地址,即被管理设备200A的地址,建立服务端110和被管理设备200A之间的可信数据通道。
在服务端110和被管理设备200A之间的可信数据通道建立成功后,服务端110可以通过拦截转发模块130向控制单元120发送源地址为被管理设备200A的地址、目的地址为控制单元111的地址、数据负载为通道建立成功消息的SSH报文。
接下来,举例介绍拦截转发模块130在本申请实施例提供的数据传输方法中的所执行的操作。
参阅图5,当拦截转发模块130在步骤501,拦截报文,得到报文C1。然后,可以执行步骤502,判断报文C1是否来自控制单元111的报文。
其中,拦截转发模块130拦截报文的实现方式有多种,以拦截方式为eBPF、将SSH报文转换为TCP报文为例,具体如下。
①filter_and_forward_ssh:eBPF程序,一方面,对符合过滤规则的报文进行拦截,另一方面,将报文进行修改后转发到协议转换模块111或控制单元120;
②load_ebpf:加载ePBF程序,实现eBPF程序和挂载点的绑定调用,挂载点种类很多,这里可以是发出SSH请求的网卡,类似sudo ip link set dev#SSH请求的网卡#xdpobject#程序文件名.o#sec spcket_filter;
编译程序的方法有很多,这里以clang举例,clang-O2-target bpf-c#程序文件名.c##程序文件名.o#。
若报文C1是来自控制单元111的报文,则拦截转发模块130执行步骤503,将报文C1的目的地址修改为服务端110的地址(例如服务端110监听的地址),以及将目的端口修改为服务端110的端口。并且,在步骤504,判断报文C1是否为发向被管理设备的首个报文。
若报文C1为发向被管理设备的首个报文,则在步骤505中,将报文C1的原始目的地址(即所发向的被管理设备的地址)添加到的报文C1的数据负载中,例如放入到报文C1的报文头中的某个保留字段。然后,通过步骤506,将报文C1转发给服务端110。
若报文C1不为发向被管理设备的首个报文,则直接通过步骤506,将报文C1转发至服务端110。
若在步骤502的判断结果表示报文C1并非来自控制单元111,则执行步骤507,判断报文C1是否来自服务端110。
若步骤507的判断结果表示报文C1来自服务端110,则可以执行步骤508,将报文C1的目的地址修改为控制单元120的地址(即控制单元120监听的地址),以及将目的端口修改为控制单元120的端口。然后,通过步骤509,将报文C1转发至控制单元120。
若步骤507的判断结果表示报文C1并非来自服务端110,则执行步骤510,正常转发报文C1。即按照报文C1的目的地址进行转发。
上文示例介绍了拦截转发模块130的工作流程。接下来,举例介绍协议转换模块111在本申请实施例提供的数据传输方法中的所执行的操作。
参阅图6,协议转换模块111在步骤601,接收到报文C2。然后,协议转换模块111在步骤602,判断报文C2是否来自拦截转发模块130。
若步骤602的判断结果表示报文C2来自拦截转发模块130,则执行步骤603,解析报文C2,以及执行步骤604,判断报文C2是否为控制单元120发向被管理设备的首个报文。
若步骤604的判断结果表示报文C2为控制单元120发向被管理设备的首个报文,则解析报文C2,从报文C2的数据负载中得到地址D1。地址D1为该被管理设备的地址。然后,执行步骤606,基于地址D1,向通道管理模块112发送通道建立请求,以及执行607,将报文发送至通道管理模块112。
若步骤604的判断结果表示报文C2不为控制单元120发向被管理设备的首个报文,则执行步骤608,判断报文C2是否为命令类报文。
若步骤608的判断结果表示报文C2为命令类报文,则在步骤609中,执行用户切换操作、指示客户端210配置环境变量等。
若步骤608的判断结果表示报文C2不为命令类报文,则在步骤610,判断报文C2是否为文件传输类报文。
若步骤610的判断结果表示报文C2为文件传输类报文,则执行步骤607,将报文发送至通道管理模块112。
其中,在步骤607中向通道管理模块112发送的报文为对SSH报文进行协议转换而得到的非SSH协议报文。
若步骤610的判断结果表示报文C2不为文件传输类报文,则执行步骤611,报错。
若步骤602的判断结果表示报文C2不是来自拦截转发模块130,则执行步骤612,判断报文C2是否为通道创建成功消息。
若步骤612的判断结果表示报文C2是通道建立成功消息,则执行步骤613,根据通道建立成功消息,生成SSH通道建立结果。然后,通过步骤614,将SSH通道建立结果发送至控制单元120,以完成控制单元120和协议转换模块111之间的SSH通道的建立。
若步骤612的判断结果表示报文C2不是通道建立成功消息,则执行步骤615,正常转发报文。即按照报文C1的目的地址进行转发。
综合以上,在本申请实施例提供的数据传输方法中,可以解除依赖SSH协议的控制单元在管理被管理设备时的人机密码依赖,使得无需对大量的被管理设备的人机密码进行维护。并且,本申请实施例提供的数据传输方法,无需对已有的依赖SSH协议的控制单元进行重构,可以兼容已有的依赖SSH协议的控制单元以及SSH报文。并且,在本申请实施例提供的数据传输方式中,只允许管理设备上的控制单元能够基于SSH协议范围被管理设备,保障了设备管理的安全性。
基于上文描述的方案,本申请实施例提供了一种数据传输方法。该方法可应用于数据传输系统中的服务端,所述数据传输系统还包括客户端,所述服务端配置于具有控制单元的第一计算设备,所述客户端配置于第二计算设备,所述控制单元用于向所述第二计算设备发送SSH报文。如图7所示,所述方法包括如下步骤:
步骤701,所述服务端获取所述控制单元向所述第二计算设备发送的第一SSH报文。具体可以参考上文对图2中步骤301的介绍实现。
步骤702,在所述服务端在确认所述第一SSH报文为所述控制单元向所述第二计算设备发送的首个SSH报文的情况下,建立所述服务端和所述客户端之间的可信数据通道。具体可以参考上文对图2中步骤302-307的介绍实现。
步骤703,所述服务端通过所述控制单元和服务端之间的SSH数据通道接收所述控制单元向所述第二计算设备发送的第二SSH报文,所述第二SSH报文包括用于控制所述第二计算设备的控制指令。具体可以参考上文对图2中步骤309的介绍实现。
步骤704,所述服务端将所述第二SSH报文转换为所述非SSH协议的第一报文,并通过所述可信数据通道向所述客户端发送所第一报文,所述第一报文包括所述控制指令;所述控制指令用于所述客户端控制所述第二计算设备。具体可以参考上文对图2中步骤310-313的介绍实现。
在一些实施例中,可信数据通道是通过第二计算设备上的客户端启动时和服务端之间的可信控制信道建立的。
在一些实施例中,所述可信数据通道是在所述服务端确认所述客户端可信,以及所述客户端确信所述服务端可信的情况下,基于所述非加密协议建立的。
在一些实施例中,所述数据传输系统还包括配置在第一计算设备上的拦截转发模块;所述拦截转发模块用于拦截所述控制单元发出的报文,并在拦截到所述第一SSH报文时,将所述第一SSH报文转发至所述服务端,使得所述服务端获取所述第一SSH报文。
在该实施例的一个示例中,所述拦截转发模块所述拦截到的所述第一SSH报文的目的地址为所述第二计算设备的网络地址,所述将所述第一SSH报文转发至所述服务端包括:所述拦截转发模块在确认所述第一SSH报文为控制单元向所述第二计算设备发送的首个SSH报文的情况下,将所述第二计算设备的网络地址携带在所述第一SSH报文中,并将所述第一SSH报文的目的地址更新为所述服务端的网络地址,以将所述更新后的第一SSH报文转发到所述服务端。
在一些实施例中,所述方法还包括:所述服务端通过所述可信数据通道接收所述客户端发送的第二报文,所述第二报文包括所述客户端基于所述控制指令控制所述第二计算设备的结果;所述服务端将所述第二报文转换为第三SSH报文,并通过所述SSH数据通道向所述控制单元发送第三SSH报文,所述第三SSH报文包括所述客户端基于所述控制指令控制所述第二计算设备的结果。
在该实施例的一个示例中,所述客户端基于所述控制指令控制所述第二计算设备的结果包括:所述客户端在所述第二计算设备执行所述控制指令的执行结果。
在一些实施例中,所述方法还包括:当所述第二SSH报文对应的用户和所述客户端前期连接的用户不一致时,执行用户切换操作,并从所述客户端接收切换结果,所述切换结果用于表示所述第二计算设备连接的用户切换为了所述第二SSH报文对应的用户;向所述控制单元发送所述切换结果。
在该实施例的一个示例中,所述用户切换操作包括:指示所述控制单元提供密码输入指示;所述向所述控制单元发送所述切换结果包括在从所述控制单元接收到密码时,向所述控制单元发送所述切换结果。
在一些实施例中,所述方法还包括:在所述第二计算设备连接的用户发生变化时,指示所述客户端配置所述变化后的用户对应的环境变量。
在本申请实施例提供的数据传输方法中,可以解除依赖SSH协议的控制单元在管理被管理设备时的人机密码依赖,使得无需对大量的被管理设备的人机密码进行维护。并且,本申请实施例提供的数据传输方法,无需对已有的依赖SSH协议的控制单元进行重构,可以兼容已有的依赖SSH协议的控制单元以及SSH报文。并且,在本申请实施例提供的数据传输方式中,只允许管理设备上的控制单元能够基于SSH协议范围被管理设备,保障了设备管理的安全性。
本申请实施例还提供了一种数据传输装置800。装置800可以配置于数据传输系统中的服务端,所述数据传输系统还包括客户端,所述服务端配置于具有控制单元的第一计算设备,所述客户端配置于第二计算设备,所述控制单元用于向所述第二计算设备发送SSH报文。参阅图8,装置800包括:获取模块810、建立模块820、通信模块830。
其中,所述获取模块810用于获取所述控制单元向所述第二计算设备发送的第一SSH报文;
所述建立模块820用于在所述服务端在确认所述第一SSH报文为所述控制单元向所述第二计算设备发送的首个SSH报文的情况下,建立所述服务端和所述客户端之间的可信数据通道;
所述通信模块830用于通过所述控制单元和所述服务端之间的SSH数据通道接收所述控制单元向所述第二计算设备发送的第二SSH报文,所述第二SSH报文包括用于控制所述第二计算设备的控制指令;
所述通信模块830还用于将所述第二SSH报文转换为所述非SSH协议的第一报文,并通过所述可信数据通道向所述客户端发送所第一报文,所述第一报文包括所述控制指令;所述控制指令用于所述客户端控制所述第二计算设备。
其中,获取模块810、建立模块820和通信模块830均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来以获取模块810为例,介绍获取模块810的实现方式。类似的,建立模块820和通信模块830的实现方式可以参考获取模块810的实现方式。
模块作为软件功能单元的一种举例,获取模块810可以包括运行在计算实例上的代码。其中,计算实例可以包括物理主机(计算设备)、虚拟机、容器中的至少一种。进一步地,上述计算实例可以是一台或者多台。例如,获取模块810可以包括运行在多个主机/虚拟机/容器上的代码。需要说明的是,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的区域(region)中,也可以分布在不同的region中。进一步地,用于运行该代码的多个主机/虚拟机/容器可以分布在相同的可用区(availability zone,AZ)中,也可以分布在不同的AZ中,每个AZ包括一个数据中心或多个地理位置相近的数据中心。其中,通常一个region可以包括多个AZ。
同样,用于运行该代码的多个主机/虚拟机/容器可以分布在同一个虚拟私有云(virtual private cloud,VPC)中,也可以分布在多个VPC中。其中,通常一个VPC设置在一个region内,同一region内两个VPC之间,以及不同region的VPC之间跨区通信需在每个VPC内设置通信网关,经通信网关实现VPC之间的互连。
模块作为硬件功能单元的一种举例,获取模块810可以包括至少一个计算设备,如服务器等。或者,获取模块810也可以是利用专用集成电路(application-specificintegrated circuit,ASIC)实现、或可编程逻辑器件(programmablel ogic device,PLD)实现的设备等。其中,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD)、现场可编程门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic arraylogic,GAL)或其任意组合实现。
获取模块810包括的多个计算设备可以分布在相同的region中,也可以分布在不同的region中。获取模块810包括的多个计算设备可以分布在相同的AZ中,也可以分布在不同的AZ中。同样,获取模块810包括的多个计算设备可以分布在同一个VPC中,也可以分布在多个VPC中。其中,所述多个计算设备可以是服务器、ASIC、PLD、CPLD、FPGA和GAL等计算设备的任意组合。
需要说明的是,在其他实施例中,获取模块810可以用于执行图7所示方法中的任意步骤,建立模块820可以用于执行图7所示方法中的任意步骤,通信模块830可以用于执行图7所示方法中的任意步骤。获取模块810、建立模块820和通信模块830负责实现的步骤可根据需要指定,通过获取模块810、建立模块820和通信模块830分别实现图7所示方法中不同的步骤来实现装置800的全部功能。
本申请还提供一种计算设备900。如图9所示,计算设备900包括:总线902、处理器904、存储器906和通信接口908。处理器904、存储器906和通信接口908之间通过总线902通信。计算设备900可以是服务器或终端设备。应理解,本申请不限定计算设备900中的处理器、存储器的个数。
总线902可以是外设部件互连标准(peripheralcomponentinterconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线902可包括在计算设备900各个部件(例如,存储器906、处理器904、通信接口908)之间传送信息的通路。
处理器904可以包括中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
存储器906可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器906还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,机械硬盘(hard diskdrive,HDD)或固态硬盘(solid state drive,SSD)。
存储器906中存储有可执行的程序代码,处理器904执行该可执行的程序代码以分别实现前述获取模块810、建立模块820和通信模块830的功能,从而实现图7所示方法。也即,存储器906上存有用于执行图7所示方法的指令。
通信接口908使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备900与其他设备或通信网络之间的通信。
本申请实施例还提供了一种计算设备集群。该计算设备集群包括至少一台计算设备。该计算设备可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。在一些实施例中,计算设备也可以是台式机、笔记本电脑或者智能手机等终端设备。
如图10所示,所述计算设备集群包括至少一个计算设备900。计算设备集群中的一个或多个计算设备900中的存储器906中可以存有相同的用于执行图7所示方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备900的存储器906中也可以分别存有用于执行图7所示方法的部分指令。换言之,一个或多个计算设备900的组合可以共同执行用于执行图7所示方法的指令。
需要说明的是,计算设备集群中的不同的计算设备900中的存储器906可以存储不同的指令,分别用于执行装置800的部分功能。也即,不同的计算设备900中的存储器906存储的指令可以实现获取模块810、建立模块820和通信模块830中的一个或多个模块的功能。
在一些可能的实现方式中,计算设备集群中的一个或多个计算设备可以通过网络连接。其中,所述网络可以是广域网或局域网等等。图11示出了一种可能的实现方式。如图11所示,两个计算设备900A和900B之间通过网络进行连接。具体地,通过各个计算设备中的通信接口与所述网络进行连接。在这一类可能的实现方式中,计算设备900A中的存储器906中存有执行获取模块810的功能的指令。同时,计算设备900B中的存储器906中存有执行建立模块820和通信模块830的功能的指令。
应理解,图11中示出的计算设备900A的功能也可以由多个计算设备900完成。同样,计算设备900B的功能也可以由多个计算设备900完成。
本申请实施例还提供了另一种计算设备集群。该计算设备集群中各计算设备之间的连接关系可以类似的参考图10和图11所述计算设备集群的连接方式。不同的是,该计算设备集群中的一个或多个计算设备900中的存储器906中可以存有相同的用于执行图7所示方法的指令。
在一些可能的实现方式中,该计算设备集群中的一个或多个计算设备900的存储器906中也可以分别存有用于执行图7所示方法的部分指令。换言之,一个或多个计算设备900的组合可以共同执行用于执行图7所示方法的指令。
本申请实施例还提供了一种包含指令的计算机程序产品。所述计算机程序产品可以是包含指令的,能够运行在计算设备上或被储存在任何可用介质中的软件或程序产品。当所述计算机程序产品在至少一个计算设备上运行时,使得至少一个计算设备执行图7所示方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等主机迁移设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算设备执行图7所示方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
Claims (20)
1.一种数据传输方法,其特征在于,应用于数据传输系统中的服务端,所述数据传输系统还包括客户端,所述服务端配置于具有控制单元的第一计算设备,所述客户端配置于第二计算设备,所述控制单元用于向所述第二计算设备发送SSH报文;所述方法包括:
所述服务端获取所述控制单元向所述第二计算设备发送的第一SSH报文;
在所述服务端在确认所述第一SSH报文为所述控制单元向所述第二计算设备发送的首个SSH报文的情况下,建立所述服务端和所述客户端之间的可信数据通道;
所述服务端通过所述控制单元和所述服务端之间的SSH数据通道接收所述控制单元向所述第二计算设备发送的第二SSH报文,所述第二SSH报文包括用于控制所述第二计算设备的控制指令;
所述服务端将所述第二SSH报文转换为非SSH协议的第一报文,并通过所述可信数据通道向所述客户端发送所述第一报文,所述第一报文包括所述控制指令;所述控制指令用于所述客户端控制所述第二计算设备。
2.根据权利要求1所述的方法,其特征在于,所述可信数据通道是通过所述第二计算设备上的所述客户端启动时和所述服务端建立的可信控制信道建立的。
3.根据权利要求1或2所述的方法,其特征在于,所述数据传输系统还包括配置在第一计算设备上的拦截转发模块;所述拦截转发模块用于拦截所述控制单元发出的报文,并在拦截到所述第一SSH报文时,将所述第一SSH报文转发至所述服务端,使得所述服务端获取所述第一SSH报文。
4.根据权利要求3所述的方法,其特征在于,所述拦截转发模块所述拦截到的所述第一SSH报文的目的地址为所述第二计算设备的网络地址,所述将所述第一SSH报文转发至所述服务端包括:所述拦截转发模块在确认所述第一SSH报文为控制单元向所述第二计算设备发送的首个SSH报文的情况下,将所述第二计算设备的网络地址携带在所述第一SSH报文中,并将所述第一SSH报文的目的地址更新为所述服务端的网络地址,以将所述更新后的第一SSH报文转发到所述服务端。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述方法还包括:
所述服务端通过所述可信数据通道接收所述客户端发送的第二报文,所述第二报文包括所述客户端基于所述控制指令控制所述第二计算设备的结果;
所述服务端将所述第二报文转换为第三SSH报文,并通过所述SSH数据通道向所述控制单元发送第三SSH报文,所述第三SSH报文包括所述客户端基于所述控制指令控制所述第二计算设备的结果。
6.根据权利要求5所述的方法,其特征在于,所述客户端基于所述控制指令控制所述第二计算设备的结果包括:所述客户端在所述第二计算设备执行所述控制指令的执行结果。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述方法还包括:
当所述第二SSH报文对应的用户和所述客户端前期连接的用户不一致时,执行用户切换操作,并从所述客户端接收切换结果,所述切换结果用于表示所述第二计算设备连接的用户切换为了所述第二SSH报文对应的用户;
向所述控制单元发送所述切换结果。
8.根据权利要求7所述方法,其特征在于,
所述用户切换操作包括:指示所述控制单元提供密码输入指示;
所述向所述控制单元发送所述切换结果包括在从所述控制单元接收到密码时,向所述控制单元发送所述切换结果。
9.根据权利要求1-8中任一项所述的方法,其特征在于,所述方法还包括:
在所述第二计算设备连接的用户发生变化时,指示所述客户端配置所述变化后的用户对应的环境变量。
10.一种数据传输方法,其特征在于,应用于数据传输系统,所述数据传输系统还包括服务端和客户端,所述服务端配置于具有控制单元的第一计算设备,所述客户端配置于第二计算设备,所述控制单元用于向所述第二计算设备发送SSH报文;所述方法包括:
所述服务端获取所述控制单元向所述第二计算设备发送的第一SSH报文;
在所述服务端在确认所述第一SSH报文为所述控制单元向所述第二计算设备发送的首个SSH报文的情况下,建立所述服务端和所述客户端之间的可信数据通道;
所述服务端通过所述控制单元和所述服务端之间的SSH数据通道接收所述控制单元向所述第二计算设备发送的第二SSH报文;所述第二SSH报文包括用于控制所述第二计算设备的控制指令;
所述服务端将所述第二SSH报文转换为非SSH协议的第一报文,并通过所述可信数据通道向所述客户端发送所第一报文,所述第一报文包括所述控制指令;
所述客户端基于所述控制指令控制所述第二计算设备。
11.根据权利要求10所述的方法,其特征在于,所述数据传输系统还包括配置在第一计算设备上的拦截转发模块;所述方法还包括:所述拦截转发模块拦截所述控制单元发出的报文,并在拦截到所述第一SSH报文时,将所述第一SSH报文转发至所述服务端,使得所述服务端获取所述第一SSH报文。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
所述客户端通过所述可信数据通道向所述服务端发送第二报文,所述第二报文包括所述客户端基于所述控制指令控制所述第二计算设备的结果;
所述服务端用于将所述第二报文转换为第三SSH报文,并通过所述SSH数据通道向所述控制单元发送第三SSH报文,所述第三SSH报文包括所述客户端基于所述控制指令控制所述第二计算设备的结果。
13.一种数据传输装置,其特征在于,配置于数据传输系统中的服务端,所述数据传输系统还包括客户端,所述服务端配置于具有控制单元的第一计算设备,所述客户端配置于第二计算设备,所述控制单元用于向所述第二计算设备发送SSH报文;所述装置包括:获取模块、建立模块、通信模块;其中,
所述获取模块用于获取所述控制单元向所述第二计算设备发送的第一SSH报文;
所述建立模块用于在所述服务端在确认所述第一SSH报文为所述控制单元向所述第二计算设备发送的首个SSH报文的情况下,建立所述服务端和所述客户端之间的可信数据通道;
所述通信模块用于通过所述控制单元和所述服务端之间的SSH数据通道接收所述控制单元向所述第二计算设备发送的第二SSH报文,所述第二SSH报文包括用于控制所述第二计算设备的控制指令;
所述通信模块还用于将所述第二SSH报文转换为非SSH协议的第一报文,并通过所述可信数据通道向所述客户端发送所第一报文,所述第一报文包括所述控制指令;所述控制指令用于所述客户端控制所述第二计算设备。
14.根据权利要求13所述的装置,其特征在于,
所述通信模块还用于通过所述可信数据通道接收所述客户端发送的第二报文,所述第二报文包括所述客户端基于所述控制指令控制所述第二计算设备的结果;
所述通信模块还用于将所述第二报文转换为第三SSH报文,并通过所述SSH数据通道向所述控制单元发送第三SSH报文,所述第三SSH报文包括所述客户端基于所述控制指令控制所述第二计算设备的结果。
15.根据权利要求13或14所述的装置,其特征在于,所述装置还包括:切换模块;
所述切换模块用于当所述第二SSH报文对应的用户和所述客户端前期连接的用户不一致时,执行用户切换操作,并从所述客户端接收切换结果,所述切换结果用于表示所述第二计算设备连接的用户切换为了所述第二SSH报文对应的用户;
所述通信模块还用于向所述控制单元发送所述切换结果。
16.根据权利要求13-15中任一项所述的装置,其特征在于,所述通信模块还用于在所述第二计算设备连接的用户发生变化时,指示所述客户端配置所述变化后的用户对应的环境变量。
17.一种数据传输系统,其特征在于,包括服务端和客户端,所述服务端配置于具有控制单元的第一计算设备,所述客户端配置于第二计算设备,所述控制单元用于向所述第二计算设备发送SSH报文;其中,
所述服务端用于获取所述控制单元向所述第二计算设备发送的第一SSH报文;
在所述服务端用于在确认所述第一SSH报文为所述控制单元向所述第二计算设备发送的首个SSH报文的情况下,建立所述服务端和所述客户端之间的可信数据通道;
所述服务端用于通过所述控制单元和所述服务端之间的SSH数据通道接收所述控制单元向所述第二计算设备发送的第二SSH报文,所述第二SSH报文包括用于控制所述第二计算设备的控制指令;
所述服务端将所述第二SSH报文转换为非SSH协议的第一报文,并通过所述可信数据通道向所述客户端发送所第一报文,所述第一报文包括所述控制指令;
所述客户端用于基于所述控制指令,控制所述第二计算设备。
18.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
所述至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得所述计算设备集群执行如权利要求1-9中任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1-9中任一项所述的方法。
20.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310731083.0A CN116980180A (zh) | 2023-06-19 | 2023-06-19 | 数据传输方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310731083.0A CN116980180A (zh) | 2023-06-19 | 2023-06-19 | 数据传输方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116980180A true CN116980180A (zh) | 2023-10-31 |
Family
ID=88472062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310731083.0A Pending CN116980180A (zh) | 2023-06-19 | 2023-06-19 | 数据传输方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116980180A (zh) |
-
2023
- 2023-06-19 CN CN202310731083.0A patent/CN116980180A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9258308B1 (en) | Point to multi-point connections | |
EP2936733B1 (en) | Secure mobile app connection bus | |
US8332464B2 (en) | System and method for remote network access | |
US7216225B2 (en) | Filtered application-to-application communication | |
US8117317B2 (en) | Systems and methods for integrating local systems with cloud computing resources | |
US20160366233A1 (en) | Private Cloud as a service | |
EP3286889B1 (en) | Secure in-band service detection | |
EP2682892A1 (en) | System and method for out-of- band application authentification | |
US11924165B2 (en) | Securing containerized applications | |
CN113341798A (zh) | 远程访问应用的方法、系统、装置、设备及存储介质 | |
CN108900324B (zh) | 校验虚拟机通信性能的方法及装置 | |
CN116830528A (zh) | 利用域名服务和单点登录服务的加密网络流量的选择性策略驱动拦截 | |
US20100011207A1 (en) | Service Oriented Architecture Device | |
US20170279806A1 (en) | Authentication in a Computer System | |
KR101971995B1 (ko) | 보안을 위한 보안 소켓 계층 복호화 방법 | |
JP4972646B2 (ja) | 一貫したアプリケーション対応ファイヤウォールトラバーサルの提供 | |
CN108293049B (zh) | 在不受控制的网络中对设备的唯一识别及与其进行安全通信 | |
CN113872933B (zh) | 隐藏源站的方法、系统、装置、设备及存储介质 | |
CN111628960B (zh) | 用于连接至专用网络上的网络服务的方法和装置 | |
CN116980180A (zh) | 数据传输方法、装置及系统 | |
CN115499177A (zh) | 云桌面访问方法、零信任网关、云桌面客户端和服务端 | |
CN113709113A (zh) | 一种基于三端分离设计的云桌面的安全可信认证方法 | |
US11569997B1 (en) | Security mechanisms for data plane extensions of provider network services | |
US8995271B2 (en) | Communications flow analysis | |
CN116760595A (zh) | 访问方法、计算设备及计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |