[go: up one dir, main page]

CN115567302B - Ssh数据传输装置、方法、设备及存储介质 - Google Patents

Ssh数据传输装置、方法、设备及存储介质 Download PDF

Info

Publication number
CN115567302B
CN115567302B CN202211193675.3A CN202211193675A CN115567302B CN 115567302 B CN115567302 B CN 115567302B CN 202211193675 A CN202211193675 A CN 202211193675A CN 115567302 B CN115567302 B CN 115567302B
Authority
CN
China
Prior art keywords
target host
login
data transmission
ssh
access request
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.)
Active
Application number
CN202211193675.3A
Other languages
English (en)
Other versions
CN115567302A (zh
Inventor
吴兴伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202211193675.3A priority Critical patent/CN115567302B/zh
Publication of CN115567302A publication Critical patent/CN115567302A/zh
Application granted granted Critical
Publication of CN115567302B publication Critical patent/CN115567302B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供一种SSH数据传输装置、方法、设备及存储介质,涉及信息安全技术领域。装置包括:第一指令接收模块,被配置为响应于用户的调用指令加载第一数据传输模块及接收用户对目标主机的访问请求;第一数据传输模块,被配置为在确定访问请求为第一访问请求的情况下,获取用户的登录信息并发送至目标主机,在目标主机确定登录信息满足登录条件的情况下,建立与目标主机的SSH连接,以及在确定访问请求为第二访问请求的情况下,将第二访问请求转发至目标主机,接收目标主机返回的结果数据;第一数据传输模块由WebAssembly字节码封装为wasm格式。本申请能够在web端直接与目标主机建立SSH连接,提高了数据交互效率。

Description

SSH数据传输装置、方法、设备及存储介质
技术领域
本申请涉及信息安全技术领域,尤其涉及一种SSH数据传输装置、一种SSH数据传输方法、一种电子设备及一种计算机可读存储介质。
背景技术
SSH是目前最常用的远程登录服务器的协议,在不同的场景下需要选择不同的客户端,例如常规办公计算机可以选择C/S架构的客户端,性能高,体验较好,但是无法满足一些特定场景,比如临时使用SSH远程登录,也必须进行SSH客户端安装才能进行SSH连接。而目前基于B/S架构的SSH客户端均采用前后端分离的方式,使用websocket实现前后端双向通信,用户在前端填写命令并提交到后端进行处理,后端再返回处理结果,但是该方式仍然存在以下问题:前后端交互频繁,效率较低;安全性保障较低。
发明内容
本申请提供一种SSH数据传输装置、方法、设备及存储介质,用以解决现有技术中基于B/S架构的SSH客户端前后端交互频繁,效率较低,以及安全性保障较低的问题。
本申请的第一方面,提供一种SSH数据传输装置,应用于web端,包括:
第一指令接收模块及第一数据传输模块;
所述第一指令接收模块,被配置为响应于用户的调用指令,加载所述第一数据传输模块,以及被配置为接收用户对目标主机的访问请求;
所述第一数据传输模块,被配置为在确定所述访问请求为第一访问请求的情况下,获取用户的登录信息并将所述登录信息发送至所述目标主机,在所述目标主机确定所述登录信息满足登录条件的情况下,建立与所述目标主机的SSH连接,以及在确定所述访问请求为第二访问请求的情况下,将所述第二访问请求转发至所述目标主机,接收所述目标主机返回的结果数据;
其中,所述第一数据传输模块由预设的WebAssembly字节码封装为wasm格式。
可选地,所述用户的登陆信息包括:目标主机ip地址、目标主机端口号、目标主机登录名、目标主机登录密码、登录模式及私钥。
可选地,所述第一数据传输模块,还被配置为:
在依据所述登录模式确定所述用户的登录模式为第一登录模式的情况下,获取所述目标主机ip地址、目标主机端口号、目标主机登录名及目标主机登录密码;
依据所述目标主机ip地址及目标主机端口号建立与所述目标主机的通信连接,使用预先生成的密钥对所述目标主机登录名及目标主机登录密码加密后发送至所述目标主机,在所述目标主机确定所述目标主机登录名及目标主机登录密码满足登录条件的情况下,建立与所述目标主机的SSH连接。
可选地,所述第一数据传输模块,还被配置为:
在依据所述登录模式确定所述用户的登录模式为第二登录模式的情况下,获取所述目标主机ip地址、目标主机端口号及私钥;
依据所述目标主机ip地址及所述目标主机端口号建立与所述目标主机的通信连接,接收所述目标主机发送的临时密钥及会话密钥,所述临时密钥由所述目标主机通过预先存储在所述目标主机上的公钥对所述目标主机产生的随机数字符串加密后得到;
通过所述私钥对所述临时密钥解密以获取所述随机数字符串,通过预设加密算法对所述随机数字符串和所述会话密钥加密后生成所述随机数字符串和所述会话密钥的摘要信息,将所述摘要信息发送至所述目标主机,在所述目标主机确定所述摘要信息满足登录条件的情况下,建立与所述目标主机的SSH连接。
可选地,所述第一数据传输模块,还被配置为:
在建立与所述目标主机的SSH连接之后,获取与所述目标主机的SSH连接通道,将所述SSH连接通道与目标页面绑定,以使得通过所述SSH连接通道从所述目标主机获取的数据在所述目标页面进行展示。
本申请的第二方面,提供一种SSH数据传输装置,应用于主机端,上述的SSH数据传输装置配套使用,包括:
第二指令接收模块,被配置为接收来自web端用户的登录信息及第二访问请求;
第二数据传输模块,被配置为在接收到所述登录信息的情况下,确定所述登录信息是否满足登录条件,若所述登录信息满足登录条件,建立与所述web端的SSH连接;以及
在接收到所述第二访问请求的情况下,获取所述第二访问请求对应的结果数据并将所述结果数据返回至所述web端。
本申请的第三方面,提供一种SSH数据传输方法,应用于上述的SSH数据传输装置,包括:
在通过第一指令接收模块接收用户的调用指令的情况下,加载第一数据传输模块;
通过所述第一指令接收模块接收所述用户对目标主机的访问请求;
在通过第一数据传输模块确定所述访问请求为第一访问请求的情况下,获取用户的登录信息并将所述登录信息发送至所述目标主机,在所述目标主机确定所述登录信息满足登录条件的情况下,建立与所述目标主机的SSH连接,以及在通过所述第一数据传输模块确定所述访问请求为第二访问请求的情况下,将所述第二访问请求转发至所述目标主机,接收所述目标主机返回的结果数据。
本申请的第四方面,提供一种SSH数据传输方法,应用于上述的SSH数据传输装置,包括:
通过第二指令接收模块接收来自web端用户的登录信息及第二访问请求;
在接收到所述登录信息的情况下,通过第二数据传输模块确定所述登录信息是否满足登录条件,若所述登录信息满足登录条件,建立与所述web端的SSH连接;以及
在接收到所述第二访问请求的情况下,通过所述第二数据传输模块获取所述第二访问请求对应的结果数据并将所述结果数据返回至所述web端。
本申请的第五方面,提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现上述的方法。
本申请的第六方面,提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述的方法。
本申请的第七方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。
本申请通过在web端构建第一指令接收模块监听用户的输入指令,以及构建第一数据传输模块对用户的输入指令进行解析并根据用户的输入指令确定与目标主机建立SSH连接或从目标主机获取结果数据,同时,通过预设的WebAssembly字节码将第一数据传输模块封装为wasm格式,从而能够在数据交互时无需进行前后端交互,能够在web端直接与目标主机建立SSH连接,提高了数据交互效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的现有SSH架构的结构示意图;
图2为本申请实施例提供的一种SSH数据传输装置的示意框图;
图3为本申请实施例提供的基于Web端的SSH架构的结构示意图;
图4为本申请实施例提供的建立SSH连接的逻辑示意图;
图5为本申请实施例提供的另一种SSH数据传输装置的示意框图;
图6为本申请实施例提供的一种SSH数据传输方法的方法流程图;
图7为本申请实施例提供的另一种SSH数据传输方法的方法流程图;
图8为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解的是,此处所描述的具体实施方式仅用于说明和解释本申请实施例,并不用于限制本申请实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明,若本申请实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,若本申请实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
现有的浏览器通常是基于JavaScript运行的,而JavaScript是一种解释型语言,也是动态类型语言,JavaScript中,变量类型是在运行时决定的,而相对于动态类型语言,还有静态类型语言如C++等,其变量类型是在定义的时候就决定了的。对于静态类型语言,通过一条指令,编译器就能知道变量的类型和内存位置,但是对于JavaScript,相同的操作,每次执行程序时,引擎都必须检查它是整数还是浮点数,或者任何其他有效的数据类型。所以JavaScript中的每条指令都要经过几次类型检查和转换,从而影响JavaScript程序的执行速度。因此,在现有的SSH基本架构中,通过需要通过后台系统来对数据交互的相关指令、数据进行解析处理。
如图1所示,现有的SSH基本架构包括Web前端,用于获取用户数据,展示返回的数据,Web前端通过websocket与SSH后台系统进行数据交互,具体的,后台系统接收Web前端的信息,对接收到的信息进行解析后,与目标服务器建立SSH连接,从目标服务器返回数据,最后再将返回的数据发送至Web前端。在Web前端与目标服务器建立SSH连接及数据交互的过程中,后台系统作为Web前端与目标服务器之间的中转站,对Web前端与目标服务器之间的交互数据需要经过后台系统执行数据的解析、处理,Web前端与后台系统要经过频繁的交互,导致数据传输效率低。其中,SSH即Secure Shell,安全外壳协议,通常用于用户远程登录主机。
为了解决上述问题,如图2所示,在本申请的第一方面,提供一种SSH数据传输装置,应用于web端,包括:第一指令接收模块及第一数据传输模块;第一指令接收模块,被配置为响应于用户的调用指令,加载第一数据传输模块,以及被配置为接收用户对目标主机的访问请求;第一数据传输模块,被配置为在确定访问请求为第一访问请求的情况下,获取用户的登录信息并将登录信息发送至目标主机,在目标主机确定登录信息满足登录条件的情况下,建立与目标主机的SSH连接,以及在确定访问请求为第二访问请求的情况下,将第二访问请求转发至目标主机,接收目标主机返回的结果数据;其中,第一数据传输模块由预设的WebAssembly字节码封装为wasm格式。
如此,本申请通过在web端构建第一指令接收模块监听用户的输入指令,以及构建第一数据传输模块对用户的输入指令进行解析并根据用户的输入指令确定与目标主机建立SSH连接或从目标主机获取结果数据,同时,通过预设的WebAssembly字节码将第一数据传输模块封装为wasm格式,从而能够在数据交互时无需进行前后端交互,能够在web端直接与目标主机建立SSH连接,提高了数据交互效率。
具体的,本实施例中,目标主机即目标服务器。第一指令接收模块可以基于前端终端组件xterm构建,其中,xterm是一个使用TypeScript编写的前端终端组件,可以直接在浏览器中实现一个命令行终端应用,可以提供多个独立的输入输出。首先创建前端页面的html文件,用以采集用户的输入信息和展示从目标服务器返回的数据,再通过xterm.js进行虚拟终端的模拟,创建xterm实例并将其挂载到前端页面的dom,从而实现与前端页面的数据交互。
WebAssembly是一种编码方式,其可以将原始的程序代码转换为浏览器可以理解的机器代码。本实施例中,第一数据传输模块可以是由Python或go语言编写的目标方法得到的功能模块,例如,目标方法为SSH的连接方法。在对SSH的连接方法编码后,通过Emscripten将得到的功能代码即第一数据传输模块编译为.wasm格式的文件,前端可以通过wasm_exec.js调用第一数据传输模块,从而执行用户与目标服务器的SSH数据交互处理。这样,如图3所示,通过将第一数据传输模块编译为.wasm格式的文件,使得前端在执行与目标服务器的SSH数据交互时,浏览器能够直接对前端产生的指令、数据进行解析处理,而无需依赖后台系统,从而直接建立用户与目标服务器之间的SSH连接。
本实施例通过预设的webassembly字节码将SSH连接相关的功能模块编译为浏览器能够直接识别的代码,从而去除掉传统web端所需要的后台系统及websocket通道连接,同时,由于本实施例的Web端的SSH架构不存在后台系统,Web前端与目标服务器能够直接建立SSH连接,因此,本实施例在前端与目标服务器的整个SSH连接期间的信息传递过程中均不会进行用户数据的保存,相比现有技术,能够更好的提高数据传输的安全性。
如图4所示,本实施例中,第一数据传输模块在接收到第一指令接收模块传送的访问请求时,首先判断接收到的访问请求的请求类别,其中,第一访问请求表示用户的访问请求为登录目标服务器的登录请求,第二访问请求表示用户的访问请求为命令信息。若确定用户的访问请求为命令信息,则前端直接将该命令信息转发至目标服务器,目标服务器根据该命令信息执行对应的动作,并获取执行对应动作后得到的结果数据,将结果数据返回给前端,并通过前端终端组件xterm进行展示。若判断用户的访问请求为登录请求,则从用户的访问请求中获取用户的登录信息,并基于获取到的登录信息与目标服务器建立SSH连接。
本实施例通过go语言建立第一数据传输模块中SSH连接的基本逻辑,实现函数getSSHSession,以获取SSH连接的读写通道。该函数的主要输入参数为用户的登录信息,其中,户的登陆信息包括:目标主机ip地址、目标主机端口号、目标主机登录名、目标主机登录密码、登录模式及私钥等。
本实施例中,在确定用户的访问请求为登录请求时,第一数据传输模块,还被配置为:在依据登录模式确定用户的登录模式为第一登录模式的情况下,获取目标主机ip地址、目标主机端口号、目标主机登录名及目标主机登录密码;依据目标主机ip地址及目标主机端口号建立与目标主机的通信连接,使用预先生成的密钥对目标主机登录名及目标主机登录密码加密后发送至目标主机,在目标主机确定目标主机登录名及目标主机登录密码满足登录条件的情况下,建立与目标主机的SSH连接。
其中,第一登录模式为口令登录,若确定用户的登录模式为口令登录,则获取用户登录信息中的目标主机ip地址、目标主机端口号、目标主机登录名及目标主机登录密码,根据目标主机ip地址及目标主机端口号访问目标主机上部署的SSH客户端,在数据传输过程中,为了保证数据的传输安全,第一数据传输模块通过预设的密钥对目标主机登录名及目标主机登录密码进行加密后发送给目标服务器,目标服务器接收到加密后的登录信息后,采用相同的密钥对其解密并获取目标主机登录名及目标主机登录密码,对获取到的目标主机登录名及目标主机登录密码进行校验、匹配,若匹配成功,则目标服务器建立与Web前端的SSH连接,若匹配失败,则向Web前端返回错误信息。其中,该预设的密钥为公钥,可预先存储在目标服务器中。
第二登录模式为公钥登录,则第一数据传输模块,还被配置为:在依据登录模式确定用户的登录模式为第二登录模式的情况下,获取目标主机ip地址、目标主机端口号及私钥;依据目标主机ip地址及目标主机端口号建立与目标主机的通信连接,接收目标主机发送的临时密钥及会话密钥,临时密钥由目标主机通过预先存储在目标主机上的公钥对目标主机产生的随机数字符串加密后得到;通过私钥对临时密钥解密以获取随机数字符串,通过预设加密算法对随机数字符串和会话密钥加密后生成随机数字符串和会话密钥的摘要信息,将摘要信息发送至目标主机,在目标主机确定摘要信息满足登录条件的情况下,建立与目标主机的SSH连接。
具体的,Web端预先生成一对公私钥,私钥保存在Web端,将公钥发送给目标服务器,公钥通常存储在目标服务器的authorized_key文件中,authorized_key文件中至少包括不同Web端的ip地址对应的公钥。在确定用户的登录请求为公钥登录时,第一数据传输模块首先获取用户登录信息中的目标主机ip地址、目标主机端口号及私钥,并根据目标主机ip地址及目标主机端口号访问目标主机上部署的SSH客户端,建立Web前端与目标服务器的SSH读写通道,并生成该读写通道的临时会话密钥。可以理解的,用户登录信息还包括Web端的ip地址,目标服务器接收到前端发送的访问请求后,目标服务器首先根据Web端的ip地址从authorized_key文件中获取对应ip地址的公钥,同时,目标服务器通过预设算法生成一串随机数字符串,并通过公钥对该随机数字符串进行加密,生成临时密钥。之后,目标服务器将该临时密钥发送给第一数据传输模块,第一数据传输模块通过私钥对临时密钥进行解密,获取其中的随机数字符串,并通过MD5加密算法将得到的随机数字符串及会话密钥进行加密,以对随机数字符串及会话密钥进行摘要提取,并将加密后生成的摘要信息发送给目标服务器。目标服务器接收到摘要信息后,采用MD5加密算法对会话密钥和随机数字符串进行加密,提取摘要,若生成的摘要信息与接收到的摘要信息一致,则确定用户的登录信息满足登录条件,建立与Web端的SSH连接,否则,向Web端返回错误信息。
本实施例中,为了进一步实现交互数据的展示,第一数据传输模块还被配置为:在建立与目标主机的SSH连接之后,获取与目标主机的SSH连接通道,将SSH连接通道与目标页面绑定,以使得通过SSH连接通道从目标主机获取的数据在目标页面进行展示。
第一数据传输模块还用于实现函数initConnection的功能,该函数主要用于初始化SSH连接并完成与前端页面的交互。本实施例中,可以使用Go语言内置的syscall/js包实现对前端页面进行交互。syscall/js包可以在Go语言中直接调用JavaScript函数以及对Dom树的操作等,从而实现与前端页面进行交互,在与目标服务器成功建立SSH连接后,获取建立好的SSH读写通道,将该读写通道与前端页面数据进行绑定。从而,Web端与目标服务器进行的数据交互可以实时通过前端组件xterm进行展示,同时也能实时获取用户通过前端组件xterm输入的指令,从而完成整个SSH终端模拟的主要逻辑,实现Web端与目标服务器的SSH连接及数据交互。具体实施时,为了便于调用,可以使用js.FuncOf和js.Global().Set将上述逻辑代码设置为JavaScript同名函数以便调用,例如,可设置为js.Global().Set("initConnection",initConnection)。最后,可以使用go build命令将得到的go代码文件编译为wasm后缀的WebAssembly二进制文件,同时在前端页面文件中使用fetch和WebAssembly.instantiate引入编译好的wasm文件以便调用。本实施例中,还通过在前端设置按钮组件的方式监听生成的initConnection函数,用户在点击按钮组件后调用该函数,执行SSH的连接逻辑步骤,创建与目标服务器的SSH连接并实现数据交互。
如图5所示,本申请的第二方面,提供一种SSH数据传输装置,应用于主机端,上述的SSH数据传输装置配套使用,包括:第二指令接收模块,被配置为接收来自web端用户的登录信息及第二访问请求;第二数据传输模块,被配置为在接收到登录信息的情况下,确定登录信息是否满足登录条件,若登录信息满足登录条件,建立与web端的SSH连接;以及在接收到第二访问请求的情况下,获取第二访问请求对应的结果数据并将结果数据返回至web端。
在一些具体实施例中,用户的登陆信息包括:目标主机ip地址、目标主机端口号、目标主机登录名、目标主机登录密码、登录模式及私钥。
在一些具体实施例中,第二数据传输模块还被配置为:
在用户的登录模式为第一登录模式的情况下,通过预存储的密钥对接收到的登录信息进行解密,获取目标主机登录名及目标主机登录密码,将获取到的目标主机登录名及目标主机登录密码与预存的目标主机登录名及目标主机登录密码的对应关系表进行匹配,若接收到的目标主机登录名及目标主机登录密码与预存的对应关系表中的其中一组目标主机登录名及目标主机登录密码的对应关系一致,确定登录信息满足登录条件,建立与Web端的SSH连接,否则,向Web端返回错误信息。
在一些具体实施例中,第二数据传输模块还被配置为:
在用户的登录模式为第二登录模式的情况下,生成会话密钥并将会话密钥发送给Web端,生成随机数字符串并获取预存的对应公钥,通过公钥对随机数字符串进行加密,生成临时密钥,并将临时密钥发送给Web端;以及接收Web端返回的基于会话密钥及随机数字符串加密产生的摘要信息,采用与Web端相同的加密算法对会话密钥及随机数字符串加密产生摘要信息,若产生的摘要信息与接收到的摘要信息一致,则确定登录信息满足登录条件,建立与Web端的SSH连接,否则,向Web端返回错误信息。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,数据传输模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上数据获取模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
如图6所示,本申请的第三方面,提供一种SSH数据传输方法,应用于上述的SSH数据传输装置,包括:
在通过第一指令接收模块接收用户的调用指令的情况下,加载第一数据传输模块;
通过第一指令接收模块接收用户对目标主机的访问请求;
在通过第一数据传输模块确定访问请求为第一访问请求的情况下,获取用户的登录信息并将登录信息发送至目标主机,在目标主机确定登录信息满足登录条件的情况下,建立与目标主机的SSH连接,以及在通过第一数据传输模块确定访问请求为第二访问请求的情况下,将第二访问请求转发至目标主机,接收目标主机返回的结果数据。
如图7所示,本申请的第四方面,提供一种SSH数据传输方法,应用于上述的SSH数据传输装置,包括:
通过第二指令接收模块接收来自web端用户的登录信息及第二访问请求;
在接收到登录信息的情况下,通过第二数据传输模块确定登录信息是否满足登录条件,若登录信息满足登录条件,建立与web端的SSH连接;以及
在接收到第二访问请求的情况下,通过第二数据传输模块获取第二访问请求对应的结果数据并将结果数据返回至web端。
本申请实施例提供的基于SSH数据传输方法,应用于上述实施例中的SSH数据传输装置,其实现原理和技术效果类似,在此不再赘述。
本申请的第五方面,提供一种电子设备,包括:处理器,以及与处理器通信连接的存储器;存储器存储计算机执行指令;处理器执行存储器存储的计算机执行指令,以实现上述的方法。
图8为本申请实施例提供的电子设备的结构示意图。如图8所示,该电子设备可以包括:收发器121、处理器122、存储器123。
处理器122执行存储器存储的计算机执行指令,使得处理器122执行上述实施例中的方案。处理器122可以是通用处理器,包括中央处理器CPU、网络处理器(networkprocessor,NP)等;还可以是数字信号处理器DSP、专用集成电路ASIC、现场可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
存储器123通过系统总线与处理器122连接并完成相互间的通信,存储器123用于存储计算机程序指令。
收发器121可以用于获取待运行任务和待运行任务的配置信息。
系统总线可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。系统总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。收发器用于实现数据库访问装置与其他计算机(例如客户端、读写库和只读库)之间的通信。存储器可能包含随机存取存储器(randomaccess memory,RAM),也可能还包括非易失性存储器(non-volatile memory)。
本申请实施例提供的电子设备,可以是上述实施例的终端设备。
本申请实施例还提供一种运行指令的芯片,该芯片用于执行上述实施例中任务调度方法的技术方案。
本申请的第六方面,提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述的方法。
本申请的第七方面,提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法。
综上,本申请基于python或go语言代码构建SSH连接的相关功能模块,并通过webassembly将各功能模块封装为wasm格式,部署在本地运行,以使得在Web端与目标服务器能够直接建立SSH,无需后台系统对相关指令进行解析,从同时能够去除掉传统WEB_SSH需要使用websocket通道实现前后端交互的过程,有效提升了WEB_SSH连接的执行效率及安全性;本申请同时通过不同的加密方式实现用户的登录认证,相比现有技术,进一步提高了用户登录的安全性。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。

Claims (11)

1.一种SSH数据传输装置,应用于web端,其特征在于,包括:
第一指令接收模块及第一数据传输模块;
所述第一指令接收模块,被配置为响应于用户的调用指令,加载所述第一数据传输模块,以及被配置为接收用户对目标主机的访问请求;
所述第一数据传输模块,被配置为在确定所述访问请求为第一访问请求的情况下,获取用户的登录信息并将所述登录信息发送至所述目标主机,在所述目标主机确定所述登录信息满足登录条件的情况下,建立与所述目标主机的SSH连接,以及在确定所述访问请求为第二访问请求的情况下,将所述第二访问请求转发至所述目标主机,接收所述目标主机返回的结果数据;
其中,所述第一数据传输模块由预设的WebAssembly字节码封装为wasm格式。
2.根据权利要求1所述的SSH数据传输装置,其特征在于,所述用户的登陆信息包括:目标主机ip地址、目标主机端口号、目标主机登录名、目标主机登录密码、登录模式及私钥。
3.根据权利要求2所述的SSH数据传输装置,其特征在于,所述第一数据传输模块,还被配置为:
在依据所述登录模式确定所述用户的登录模式为第一登录模式的情况下,获取所述目标主机ip地址、目标主机端口号、目标主机登录名及目标主机登录密码;
依据所述目标主机ip地址及目标主机端口号建立与所述目标主机的通信连接,使用预先生成的密钥对所述目标主机登录名及目标主机登录密码加密后发送至所述目标主机,在所述目标主机确定所述目标主机登录名及目标主机登录密码满足登录条件的情况下,建立与所述目标主机的SSH连接。
4.根据权利要求2所述的SSH数据传输装置,其特征在于,所述第一数据传输模块,还被配置为:
在依据所述登录模式确定所述用户的登录模式为第二登录模式的情况下,获取所述目标主机ip地址、目标主机端口号及私钥;
依据所述目标主机ip地址及所述目标主机端口号建立与所述目标主机的通信连接,接收所述目标主机发送的临时密钥及会话密钥,所述临时密钥由所述目标主机通过预先存储在所述目标主机上的公钥对所述目标主机产生的随机数字符串加密后得到;
通过所述私钥对所述临时密钥解密以获取所述随机数字符串,通过预设加密算法对所述随机数字符串和所述会话密钥加密后生成所述随机数字符串和所述会话密钥的摘要信息,将所述摘要信息发送至所述目标主机,在所述目标主机确定所述摘要信息满足登录条件的情况下,建立与所述目标主机的SSH连接。
5.根据权利要求3或4中任一项权利要求所述的SSH数据传输装置,其特征在于,所述第一数据传输模块,还被配置为:
在建立与所述目标主机的SSH连接之后,获取与所述目标主机的SSH连接通道,将所述SSH连接通道与目标页面绑定,以使得通过所述SSH连接通道从所述目标主机获取的数据在所述目标页面进行展示。
6.一种SSH数据传输装置,应用于主机端,与权利要求1或5中任一项权利要求所述的SSH数据传输装置配套使用,其特征在于,包括:
第二指令接收模块,被配置为接收来自web端用户的登录信息及第二访问请求;
第二数据传输模块,被配置为在接收到所述登录信息的情况下,确定所述登录信息是否满足登录条件,若所述登录信息满足登录条件,建立与所述web端的SSH连接;以及
在接收到所述第二访问请求的情况下,获取所述第二访问请求对应的结果数据并将所述结果数据返回至所述web端。
7.一种SSH数据传输方法,应用于权利要求1~5中任一项权利要求所述的SSH数据传输装置,其特征在于,包括:
在通过第一指令接收模块接收用户的调用指令的情况下,加载第一数据传输模块;
通过所述第一指令接收模块接收所述用户对目标主机的访问请求;
在通过第一数据传输模块确定所述访问请求为第一访问请求的情况下,获取用户的登录信息并将所述登录信息发送至所述目标主机,在所述目标主机确定所述登录信息满足登录条件的情况下,建立与所述目标主机的SSH连接,以及在通过所述第一数据传输模块确定所述访问请求为第二访问请求的情况下,将所述第二访问请求转发至所述目标主机,接收所述目标主机返回的结果数据。
8.一种SSH数据传输方法,应用于权利要求6所述的SSH数据传输装置,其特征在于,包括:
通过第二指令接收模块接收来自web端用户的登录信息及第二访问请求;
在接收到所述登录信息的情况下,通过第二数据传输模块确定所述登录信息是否满足登录条件,若所述登录信息满足登录条件,建立与所述web端的SSH连接;以及
在接收到所述第二访问请求的情况下,通过所述第二数据传输模块获取所述第二访问请求对应的结果数据并将所述结果数据返回至所述web端。
9.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求7或8所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现如权利要求7或8所述的方法。
11.一种计算机程序产品,其特征在于,包括计算机程序,该计算机程序被处理器执行时实现权利要求7或8所述的方法。
CN202211193675.3A 2022-09-28 2022-09-28 Ssh数据传输装置、方法、设备及存储介质 Active CN115567302B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211193675.3A CN115567302B (zh) 2022-09-28 2022-09-28 Ssh数据传输装置、方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211193675.3A CN115567302B (zh) 2022-09-28 2022-09-28 Ssh数据传输装置、方法、设备及存储介质

Publications (2)

Publication Number Publication Date
CN115567302A CN115567302A (zh) 2023-01-03
CN115567302B true CN115567302B (zh) 2024-07-12

Family

ID=84743416

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211193675.3A Active CN115567302B (zh) 2022-09-28 2022-09-28 Ssh数据传输装置、方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN115567302B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113950664A (zh) * 2019-07-02 2022-01-18 布赖恩·霍尔特 超堆积器
CN114124496A (zh) * 2021-11-12 2022-03-01 福州汇思博信息技术有限公司 一种基于服务器下发密钥的ssh远程登录方法及服务器

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959613B2 (en) * 2009-06-18 2015-02-17 Visa U.S.A. Inc. System and method for managing access to a plurality of servers in an organization
US9398102B2 (en) * 2013-03-06 2016-07-19 Netskope, Inc. Security for network delivered services
CN114417303A (zh) * 2021-12-17 2022-04-29 中国建设银行股份有限公司 登录认证管理方法、装置、处理器及机器可读存储介质
CN115037552B (zh) * 2022-06-29 2024-09-13 北京大甜绵白糖科技有限公司 鉴权方法、装置、设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113950664A (zh) * 2019-07-02 2022-01-18 布赖恩·霍尔特 超堆积器
CN114124496A (zh) * 2021-11-12 2022-03-01 福州汇思博信息技术有限公司 一种基于服务器下发密钥的ssh远程登录方法及服务器

Also Published As

Publication number Publication date
CN115567302A (zh) 2023-01-03

Similar Documents

Publication Publication Date Title
CA2595758C (en) System for detecting vulnerabilities in web applications using client-side application interfaces
WO2017152050A1 (en) Deterministic reproduction of client/server computer state or output sent to one or more client computers
CN104735066A (zh) 一种面向网页应用的单点登录方法、装置和系统
US8291227B2 (en) Method and apparatus for secure communication
CN110708335A (zh) 访问认证方法、装置及终端设备
US11405403B2 (en) Method and device, and server and terminal for processing network resource access
US20240275787A1 (en) Application access control method and apparatus, and computer device and storage medium
CN111404695A (zh) 令牌请求验证方法和装置
CN112925589B (zh) 扩展接口的调用方法及装置
CN111770072A (zh) 一种单点登录接入功能页面的方法和装置
CN112988162B (zh) Chrome浏览器的数据提取方法、装置、设备及存储介质
CN116974583A (zh) 数据处理方法、装置、计算机设备、存储介质及程序产品
CN107066888B (zh) 可扩展的可信用户接口、方法和电子设备
CN115567302B (zh) Ssh数据传输装置、方法、设备及存储介质
CN112182617B (zh) 针对接口请求的处理方法、装置及系统
Fischer et al. RPC based framework for partitioning IoT security software for trusted execution environments
EP3477531A1 (en) Integrity of user input in web pages
CN112000313A (zh) 请求响应方法、装置、设备及存储介质
US20170279777A1 (en) File signature system and method
CN114860360B (zh) 登录页面生成的方法、装置及电子设备
CN113783835B (zh) 一种口令分享方法、装置、设备及存储介质
CN113760688B (zh) 一种远程调试方法、系统、网页服务器、设备及存储介质
CN113901377B (zh) 遗留系统的服务调用方法、装置、存储介质及设备
CN114024688B (zh) 网络请求方法、网络认证方法、终端设备和服务端
US11533282B1 (en) Specifying and testing open communication protocols

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
GR01 Patent grant
GR01 Patent grant