CN111510444A - 容器的远程访问方法、系统、服务端和访问辅助组件 - Google Patents

容器的远程访问方法、系统、服务端和访问辅助组件 Download PDF

Info

Publication number
CN111510444A
CN111510444A CN202010272591.3A CN202010272591A CN111510444A CN 111510444 A CN111510444 A CN 111510444A CN 202010272591 A CN202010272591 A CN 202010272591A CN 111510444 A CN111510444 A CN 111510444A
Authority
CN
China
Prior art keywords
container
access
client
user
identifier
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
Application number
CN202010272591.3A
Other languages
English (en)
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.)
Shanghai Yunli Information Technology Co ltd
Original Assignee
Shanghai Yunli Technology 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 Shanghai Yunli Technology Co ltd filed Critical Shanghai Yunli Technology Co ltd
Priority to CN202010272591.3A priority Critical patent/CN111510444A/zh
Publication of CN111510444A publication Critical patent/CN111510444A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

本发明实施例提供一种容器的远程访问方法、系统、服务端和访问辅助组件,该方法包括:接收客户端发送的ssh访问请求,其包括用户标识和密码;将ssh访问请求发送至访问辅助组件以使其根据用户标识和密码进行认证得到认证结果;若认证结果符合预设条件则向访问辅助组件请求用户标识对应的已授权容器的容器标识;将容器标识发送至客户端并接收返回的容器访问指令,容器访问指令是客户端根据输入的待访问容器的容器标识生成的;根据容器访问指令将待访问容器的输入、输出流重定向到客户端以通过客户端访问容器。本发明实施例不需要在容器内部安装sshd进程实现了容器的访问,无需增加额外的服务节点减少资源开销降低了服务运维难度。

Description

容器的远程访问方法、系统、服务端和访问辅助组件
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种容器的远程访问方法、系统、服务端和访问辅助组件。
背景技术
容器是提供一种应用程序运行的一个环境,当开发人员打包开发完成的一个应用以及所需的开发环境,通过容器可以运行在不同的计算机上面,不需要在计算机中重新配置应用程序运行所需的环境,只需要在计算机云平台上配置运行和管理容器的容器编排引擎,比如开源的容器集群管理系统kubernetes,当需要运行相关应用程序时,访问相应的容器即可运行。
传统的容器远程访问方法是基于虚拟机的思想,在每个容器中启动一个sshd进程,用户通过客户端指定容器的IP地址远程连接到容器。但是这种方法需要修改容器的启动参数,在容器内运行sshd进程,给容器配置用户名、密码并设置可外部访问的IP地址,过程繁琐且占用宿主机资源。为了解决容器远程访问过程繁琐的问题,技术人员研究出了一种基于web访问容器的方法,主要是利用了自行开发的Websocket服务来替代了sshd服务,并提供了权限控制和访问。
但是,这种基于web访问容器的方法需要额外自定义多个Websocket服务节点,使用自定义的Websocket服务节点管理客户端对每一个节点进行暴露会增加额外的资源开销,不仅占用资源多,而且将多个自定义Websocket服务节点部署在物理机上增加服务运维难度。
发明内容
本发明实施例提供一种容器的远程访问方法、系统、服务端和访问辅助组件,以解决现有技术中通过基于web访问容器导致的资源占用过多,运维难度大的问题。
本发明实施例的第一方面提供一种容器的远程方法,应用于服务端,包括:
接收客户端发送的安全外壳ssh访问请求,所述ssh访问请求包括用户标识和密码;
将所述ssh访问请求发送至访问辅助组件,以使所述访问辅助组件根据所述用户标识和密码进行认证得到认证结果;
若所述认证结果符合预设条件,则向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识;
将所述容器标识发送至所述客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的;
根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
可选地,所述接收客户端发送的ssh访问请求之前,所述方法还包括:
采用容器编排引擎Kubernetes部署所述服务端管理的集群,所述集群包括多个容器;
将所述集群的访问地址发送至客户端,以使用户根据所述访问地址通过所述客户端发送ssh访问请求。
可选地,所述向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识,包括:
向所述访问辅助组件请求所述用户标识对应的容器列表,所述容器列表中包括所述用户标识对应的至少一个已授权容器的容器标识。
可选地,所述将所述容器标识发送至所述客户端,包括:
判断所述容器列表是否为空;
若判断结果为否,则将所述容器列表发送至所述客户端。
本发明实施例的第二方面提供一种容器的远程方法,应用于访问辅助组件,包括:
接收服务端发送的ssh访问请求,并解析所述ssh访问请求得到用户标识和密码;
根据所述用户标识和密码进行认证,得到认证结果;
若所述认证结果符合预设条件,则响应于所述服务端的请求,将所述用户标识对应的已授权容器的容器标识发送至所述服务端,以使所述服务端将所述容器标识发送至客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的,根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
可选地,所述根据所述用户标识和密码进行认证之前,所述方法还包括:
根据用户标识和密码以及预设授权粒度对容器进行授权,所述授权粒度包括命名空间和单个容器。
可选地,所述将所述用户标识对应的已授权容器的容器标识发送至所述服务端,包括:
根据用户标识对应的已授权容器的容器标识生成容器列表;
将所述容器列表发送至所述服务端,以使所述服务端接收并判断所述容器列表是否为空,若判断结果为否,则将所述容器列表发送至所述客户端。
本发明实施例的第三方面提供一种服务端,包括:
接收模块,用于接收用户通过客户端发送的ssh访问请求,所述ssh访问请求包括用户标识和密码;
发送模块,用于将所述ssh访问请求发送至访问辅助组件,以使所述访问辅助组件根据所述用户标识和密码进行认证得到认证结果;
请求模块,用于若所述认证结果符合预设条件,则向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识;
处理模块,用于将所述容器标识发送至所述客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的;
重定向模块,用于根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
本发明实施例的第四方面提供一种辅助访问组件,包括:
接收模块,用于接收服务端发送的ssh访问请求,并解析所述ssh访问请求得到用户标识和密码;
认证模块,用于根据所述用户标识和密码进行认证,得到认证结果;
响应模块,用于若所述认证结果符合预设条件,则响应于所述服务端的请求,将所述用户标识对应的已授权容器的容器标识发送至所述服务端,以使所述服务端将所述容器标识发送至客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的,根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
本发明实施例的第五方面提供一种容器的远程访问系统,包括:客户端,访问辅助组件和服务端;其中,
所述服务端分别与所述客户端和所述访问辅助组件通信;
所述服务端用于执行本发明实施例第一方面所述的容器的远程访问方法;
所述访问辅助组件用于执行本发明实施例第二方面所述的容器的远程访问方法。
本发明实施例的第六方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现本发明实施例第一方面或第二方面所述的容器的远程访问方法。
本发明实施例提供一种容器的远程访问方法、系统、服务端和访问辅助组件,通过服务端接收客户端发送的安全外壳ssh访问请求,ssh访问请求包括用户标识和密码;将ssh访问请求发送至访问辅助组件,从而使得访问辅助组件根据所述用户标识和密码进行认证得到认证结果;若所述认证结果符合预设条件,则向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识;将容器标识发送至所述客户端并接收所述客户端返回的容器访问指令,容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的;通过根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,使得用户能够直接通过客户端连接到容器,这一过程不需要再容器内部安装任何ssh服务,避免了资源占用多配置复杂的问题;同时,也不需要开发人员自定义额外的服务节点,减少了资源开销降低了服务运维难度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一示例性实施例示出的容器的远程访问方法的应用场景图;
图2是本发明一示例性实施例示出的容器的远程访问方法的流程示意图;
图3是本发明另一示例性实施例示出的容器的远程访问方法的流程示意图;
图4是本发明一示例性实施例示出的容器的远程访问系统的结构示意图;
图5是本发明一示例性实施例示出的服务端的结构示意图;
图6是本发明一示例性实施例示出的访问辅助组件的结构示意图;
图7是本发明一示例性实施例示出的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
相关技术,容器是提供一种应用程序运行的一个环境,当开发人员打包开发完成的一个应用以及所需的开发环境,通过容器可以运行在不同的计算机上面,不需要在计算机中重新配置应用程序运行所需的环境,只需要在计算机云平台上配置运行和管理容器的容器编排引擎,比如开源的容器集群管理系统kubernetes,当需要运行相关应用程序时,访问相应的容器即可运行。
传统的容器远程访问方法是基于虚拟机的思想,即在每个容器中启动一个sshd进程,用户通过客户端指定容器的IP地址远程连接到容器。但是这种方法需要修改容器的启动参数,在容器内运行sshd进程,给容器配置用户名、密码并设置可外部访问的IP地址,过程繁琐且占用宿主机资源。为了解决容器远程访问过程繁琐的问题,技术人员研究出了一种基于web访问容器的方法,主要是利用了自行开发的Websocket服务来替代了sshd服务,并提供了权限控制和访问。但是,这种基于web访问容器的方法需要额外自定义多个Websocket服务节点来管理客户端,而使用自定义的Websocket服务节点管理客户端对每一个服务节点进行暴露端口会增加额外的资源开销,不仅占用资源多,而且自定义的服务节点使用的服务本身不是镜像管理,需要将多个自定义Websocket服务节点额外部署在物理机上增加服务运维难度。
针对上述缺陷,本发明的技术方案主要在于:通过服务端接收客户端发送的安全外壳ssh访问请求,其中服务端是基于ssh协议的服务端,客户端是成熟的基于ssh协议的客户端,ssh访问请求包括用户标识和密码;将ssh访问请求发送至访问辅助组件,访问辅助组件根据所述用户标识和密码进行认证得到认证结果;如果认证通过,则服务端向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识;然后将容器标识发送至所述客户端,用户可以通过客户端提供的所有已授权容器的容器标识,再客户端输入想要访问的容器标识,客户端根据用户输入的容器标识自动生成容器访问指令,并将容器访问指令发送至服务端,服务端接收并执行客户端返回的容器访问指令后,将需要访问的容器的输入流和输出流重定向到客户端,从而实现了用户能够通过客户端直接连接到容器。这一过程不需要再容器内部安装任何ssh服务,避免了资源占用多配置复杂的问题;同时,也不需要开发人员自定义额外的服务节点,减少了资源开销降低了服务运维难度。
图1是本发明一示例性实施例示出的容器的远程访问方法的应用场景图。
如图1所示,本实施例提供的应用场景图的主要架构包括:服务端101,客户端102,访问辅助组件103;其中,服务端是基于ssh协议的服务端,客户端是基于ssh协议的客户端。
图2是本发明一示例性实施例示出的容器的远程访问方法的流程示意图,本实施例提供的方法的执行主体可以是图1所示实施例中的服务端。
如图2所示,本实施例提供的方法可以包括以下步骤。
S201,接收客户端发送的安全外壳ssh访问请求,所述ssh访问请求包括用户标识和密码;
其中,客户端为基于ssh协议的客户端。
具体的,用户通过预先设置的用户标识(比如用户名)和密码登录客户端,然后通过客户端发起ssh访问请求,服务端接收到ssh访问请求。
S202,将所述ssh访问请求发送至访问辅助组件,以使所述访问辅助组件根据所述用户标识和密码进行认证得到认证结果。
具体的,服务端接收到客户端发送的ssh访问请求后,将该请求转送至访问辅助组件,由访问辅助组件根据用户标识和密码对发起请求的用户进行认证,通过认证提高了访问过程的安全性。
S203,若所述认证结果符合预设条件,则向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识。
具体的,如果认证通过,则请求访问辅助组件,获取该登录用户所有的已授权容器的容器标识;如果认证失败,则中止连接并向客户端返回失败信息。
S204,将所述容器标识发送至所述客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的。
具体的,服务端将容器标识发送到客户端,用户可以通过客户端查到所有已授权的容器,然后通过客户端输入想要访问的容器的容器标识,客户端自动生成访问容器的命令语句,并将访问容器的命令语句发送至服务端。
S205,根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
具体的,服务端执行客户端返回的访问容器的命令语句,将待访问容器的输入流和输出流重定向到该客户端,即将容器的源和目的地指向该客户端,从而将客户端直接连接到待访问的容器,用户通过客户端可直接操控该容器。
本实施例中,通过服务端接收客户端发送的安全外壳ssh访问请求,其中服务端是基于ssh协议的服务端,客户端是成熟的基于ssh协议的客户端,ssh访问请求包括用户标识和密码;将ssh访问请求发送至访问辅助组件,访问辅助组件根据所述用户标识和密码进行认证得到认证结果;如果认证通过,则服务端向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识;然后将容器标识发送至所述客户端,用户可以通过客户端提供的所有已授权容器的容器标识,再客户端输入想要访问的容器标识,客户端根据用户输入的容器标识自动生成容器访问指令,并将容器访问指令发送至服务端,服务端接收并执行客户端返回的容器访问指令后,将需要访问的容器的输入流和输出流重定向到客户端,从而实现了用户能够通过客户端直接连接到容器。这一过程不需要再容器内部安装任何ssh服务,避免了资源占用多配置复杂的问题;同时,也不需要开发人员自定义额外的服务节点,减少了资源开销降低了服务运维难度。
进一步的,所述接收客户端发送的ssh访问请求之前,所述方法还包括:采用容器编排引擎Kubernetes部署所述服务端管理的集群,所述集群包括多个容器;将所述集群的访问地址发送至客户端,以使用户根据所述访问地址通过所述客户端发送ssh访问请求。
具体的,采用容器编排引擎Kubernetes,以镜像的方式部署所述服务端管理的集群,并提供访问地址给用户,在Kubernetes一般可以选择通过nodeport暴露端口,并在外层的slb上暴露该端口,配置全过程自动化。服务端将访问端口暴露给客户端后,用户可以通过客户端查看到这些暴露端口(即访问地址),然后用户便可以通过客户端(比如xhsell等)对提高的访问地址进行ssh访问请求。
本实施例中,使用的基于ssh协议的服务端可以通过容器编排引擎部署并提供服务,该服务的个数和实际的节点没有必然关系,并且减少了宿主机的额外资源开销。
一些实施例中,用户登录客户端并发起ssh访问请求使用用户名和密码是由访问辅助组件对接的用户系统来决定的,示例性的,访问辅助组件对接了某个企业内部的LDAP,那么可以使用LDAP的统一用户进行登录。
在一个实施例中,所述向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识,包括:向所述访问辅助组件请求所述用户标识对应的容器列表,所述容器列表中包括所述用户标识对应的至少一个已授权容器的容器标识。
进一步的,所述将所述容器标识发送至所述客户端,包括:判断所述容器列表是否为空;若判断结果为否,则将所述容器列表发送至所述客户端。
具体的,访问辅助组件包含了所有已认证用户的授权容器的容器标识,每个用户对应的授权容器的容器标识可以以列表的形式存储,当服务端发起请求时,访问辅助组件可以直接将该用户对应的授权容器列表反馈给服务端,然后服务端,服务端判断容器列表是否为空,如果列表为空,则中止连接并向客户端返回失败信息。如果不为空,则将获取的容器列表发送至客户端以供用户选择,容器列表中每个容器都对应一个容器标识(比如id号),用户通过容器列表在客户端输入想要访问的容器id号,客户端则自动生成容器访问指令。
可选地,当用户想要重新选择需要访问的容器时,可以通过客户端输入一个返回指令,客户端根据用户输入的返回指令,返回到容器列表的选择界面,重新进行容器选择。
比如,当用户输入ctrl+d退出console时,返回到容器选择列表,可以重新进行容器选择。
可选地,当用户想要退出访问时,可以在客户端的容器列表界面输入一个退出指令,客户端接收到退出指令后完全退出服务。
比如,用户在容器列表界面输入ctrl+d或者ctrl+c则完全退出ssh服务。
图3是本发明另一示例性实施例示出的容器的远程访问方法的流程示意图,本实施例中提高的方法的执行主体可以是图1所示实施例中的访问辅助组件。
如图3所示,本实施例提高的方法可以包括以下步骤。
S301,接收服务端发送的ssh访问请求,并解析所述ssh访问请求得到用户标识和密码。
具体的,服务端接收到客户端发送的ssh访问请求后,会将该请求转送至访问辅助组件来认证,访问辅助组件对ssh访问请求进行解析得到登录用户的用户标识和密码。
S302,根据所述用户标识和密码进行认证,得到认证结果。
具体的,访问辅助组件根据用户标识和密码进行身份对比,公安验证等操作,如果认证通过,则继续后边的流程,如果认证失败则中止连接。
S303,若所述认证结果符合预设条件,则响应于所述服务端的请求,将所述用户标识对应的已授权容器的容器标识发送至所述服务端,以使所述服务端将所述容器标识发送至客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的,根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
具体的,如果认证通过,则响应服务端发送的请求,将该用户对应的已授权容器的容器标识全部发送到服务端,服务端接收到容器标识后将其发送至客户端,由用户通过客户端选择待访问的容器,用户通过客户端输入待访问容器的容器标识,客户端则生成该容器标识对应的容器访问指令并发送至服务端,服务端执行容器访问指令,将该容器的输入流和输入流重定向到上述客户端,即,将该容器的源和目的地都指向该客户端,从而使客户端能够直接连接到容器。
本实施例中,实现了用户能够通过客户端直接连接到容器,不需要再容器内部安装任何ssh服务,避免了资源占用多配置复杂的问题;同时,也不需要开发人员自定义额外的服务节点,减少了资源开销降低了服务运维难度。
在一个实施例中,所述根据所述用户标识和密码进行认证之前,所述方法还包括:根据用户标识和密码以及预设授权粒度对容器进行授权,所述授权粒度包括命名空间和单个容器。
具体的,预先部署访问辅助组件,并选择外部用户系统,根据外部用户系统的用户名、密码等信息预先设置用户对应的授权信息,授权粒度包括命名空间和单个容器。从而使访问辅助组件可以通过外部系统对用户进行认证,比如继承已有轻量目录访问协议(Lightweight Directory Access Protocol,LDAP)系统或者其他用户管理系统。并且,访问辅助组件可以对编排引擎中的容器进行手段,既可以达到Kubernetes中的名称空间namespace范围也可以对单个容器进行授权,十分灵活。
在一个实施例中,所述将所述用户标识对应的已授权容器的容器标识发送至所述服务端,包括:根据用户标识对应的已授权容器的容器标识生成容器列表;将所述容器列表发送至所述服务端,以使所述服务端接收并判断所述容器列表是否为空,若判断结果为否,则将所述容器列表发送至所述客户端。
具体的,在访问辅助组件对用户进行授权后,访问辅助组件包含了所有已认证用户的授权容器的容器标识,每个用户对应的授权容器的容器标识可以以列表的形式存储,当服务端发起请求时,访问辅助组件可以直接将该用户对应的授权容器列表反馈给服务端,然后服务端,服务端判断容器列表是否为空,如果列表为空,则中止连接并向客户端返回失败信息。如果不为空,则将获取的容器列表发送至客户端以供用户选择,容器列表中每个容器都对应一个容器标识(比如id号),用户通过容器列表在客户端输入想要访问的容器id号,客户端则自动生成容器访问指令。
本实施例中,不需要再容器内部配置用户名和密码信息,就能够实现对容器的接入的权限控制,使得用户可以利用成熟工具(比如ssh客户端)来访问容器;更进一步的,通过访问辅助组件,实现了完备的认证和授权机制,提高了安全性。
图4是本发明一示例性实施例示出的容器的远程访问系统的结构示意图。
如图4所示,本实施例提供的系统包括:客户端401,访问辅助组件402和服务端403;其中,所述服务端分别与所述客户端和所述访问辅助组件通信。
进一步的,本实施例提供的系统还包括至少一个集群,每个集群中包括至少一个容器。
其中,服务端、访问辅助组件以及客户端的具体功能描述可参考有关该方法中的详细描述。
图5是本发明一示例性实施例示出的服务端的结构示意图。
如图5所示,本实施例提供的服务端包括:接收模块501,发送模块502,请求模块503,处理模块504以及重定向模块505。
其中,接收模块501,用于接收用户通过客户端发送的ssh访问请求,所述ssh访问请求包括用户标识和密码;发送模块502,用于将所述ssh访问请求发送至访问辅助组件,以使所述访问辅助组件根据所述用户标识和密码进行认证得到认证结果;请求模块503,用于若所述认证结果符合预设条件,则向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识;处理模块504,用于将所述容器标识发送至所述客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的;重定向模块505,用于根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
进一步的,本实施例提供的服务端还包括:配置模块,用于采用容器编排引擎Kubernetes部署所述服务端管理的集群,所述集群包括多个容器;将所述集群的访问地址发送至客户端,以使用户根据所述访问地址通过所述客户端发送ssh访问请求。
进一步的,所述请求模块具体用于:向所述访问辅助组件请求所述用户标识对应的容器列表,所述容器列表中包括所述用户标识对应的至少一个已授权容器的容器标识。
进一步的,所述处理模块具体用于:判断所述容器列表是否为空;若判断结果为否,则将所述容器列表发送至所述客户端。
图6是本发明一示例性实施例示出的访问辅助组件的结构示意图。
如图6所示,本实施例提供的访问辅助组件包括:接收模块601,认证模块602以及响应模块603。
其中,接收模块601,用于接收服务端发送的ssh访问请求,并解析所述ssh访问请求得到用户标识和密码;认证模块602,用于根据所述用户标识和密码进行认证,得到认证结果;响应模块603,用于若所述认证结果符合预设条件,则响应于所述服务端的请求,将所述用户标识对应的已授权容器的容器标识发送至所述服务端,以使所述服务端将所述容器标识发送至客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的,根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
进一步的,所述访问辅助组件还包括:权限设置模块,用于根据用户标识和密码以及预设授权粒度对容器进行授权,所述授权粒度包括命名空间和单个容器。
进一步的,所述响应模块具体用于:根据用户标识对应的已授权容器的容器标识生成容器列表;将所述容器列表发送至所述服务端,以使所述服务端接收并判断所述容器列表是否为空,若判断结果为否,则将所述容器列表发送至所述客户端。
本实施例中各个模块的详细功能描述请参考有关该方法的实施例中的描述,此处不做详细阐述说明。
图7为本发明实施例提供的电子设备的硬件结构示意图。如图7所示,本实施例提供的电子设备700包括:至少一个处理器701和存储器702。其中,处理器701、存储器702通过总线703连接。
在具体实现过程中,至少一个处理器701执行所述存储器702存储的计算机执行指令,使得至少一个处理器701执行上述方法实施例中的容器的远程访问方法。
处理器701的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图7所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请的另一实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述方法实施例中的容器的远程访问方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (11)

1.一种容器的远程访问方法,其特征在于,应用于服务端,包括:
接收客户端发送的安全外壳协议ssh访问请求,所述ssh访问请求包括用户标识和密码;
将所述ssh访问请求发送至访问辅助组件,以使所述访问辅助组件根据所述用户标识和密码进行认证得到认证结果;
若所述认证结果符合预设条件,则向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识;
将所述容器标识发送至所述客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的;
根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
2.根据权利要求1所述的方法,其特征在于,所述接收客户端发送的ssh访问请求之前,所述方法还包括:
采用容器编排引擎Kubernetes部署所述服务端管理的集群,所述集群包括多个容器;
将所述集群的访问地址发送至客户端,以使用户根据所述访问地址通过所述客户端发送ssh访问请求。
3.根据权利要求1所述的方法,其特征在于,所述向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识,包括:
向所述访问辅助组件请求所述用户标识对应的容器列表,所述容器列表中包括所述用户标识对应的至少一个已授权容器的容器标识。
4.根据权利要求3所述的方法,其特征在于,所述将所述容器标识发送至所述客户端,包括:
判断所述容器列表是否为空;
若判断结果为否,则将所述容器列表发送至所述客户端。
5.一种容器的远程访问方法,其特征在于,应用于访问辅助组件,包括:
接收服务端发送的ssh访问请求,并解析所述ssh访问请求得到用户标识和密码;
根据所述用户标识和密码进行认证,得到认证结果;
若所述认证结果符合预设条件,则响应于所述服务端的请求,将所述用户标识对应的已授权容器的容器标识发送至所述服务端,以使所述服务端将所述容器标识发送至客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的,根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
6.根据权利要求5所述的方法,其特征在于,所述根据所述用户标识和密码进行认证之前,所述方法还包括:
根据用户标识和密码以及预设授权粒度对容器进行授权,所述授权粒度包括命名空间和单个容器。
7.根据权利要求5所述的方法,其特征在于,所述将所述用户标识对应的已授权容器的容器标识发送至所述服务端,包括:
根据用户标识对应的已授权容器的容器标识生成容器列表;
将所述容器列表发送至所述服务端,以使所述服务端接收并判断所述容器列表是否为空,若判断结果为否,则将所述容器列表发送至所述客户端。
8.一种服务端,其特征在于,包括:
接收模块,用于接收用户通过客户端发送的ssh访问请求,所述ssh访问请求包括用户标识和密码;
发送模块,用于将所述ssh访问请求发送至访问辅助组件,以使所述访问辅助组件根据所述用户标识和密码进行认证得到认证结果;
请求模块,用于若所述认证结果符合预设条件,则向所述访问辅助组件请求所述用户标识对应的已授权容器的容器标识;
处理模块,用于将所述容器标识发送至所述客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的;
重定向模块,用于根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
9.一种辅助访问组件,其特征在于,包括:
接收模块,用于接收服务端发送的ssh访问请求,并解析所述ssh访问请求得到用户标识和密码;
认证模块,用于根据所述用户标识和密码进行认证,得到认证结果;
响应模块,用于若所述认证结果符合预设条件,则响应于所述服务端的请求,将所述用户标识对应的已授权容器的容器标识发送至所述服务端,以使所述服务端将所述容器标识发送至客户端并接收所述客户端返回的容器访问指令,所述容器访问指令是所述客户端根据用户输入的待访问容器的容器标识生成的,根据所述容器访问指令,将所述待访问容器的输入流和输出流重定向到所述客户端,以使用户通过所述客户端访问相应的容器。
10.一种容器的远程访问系统,其特征在于,包括:客户端,访问辅助组件和服务端;其中,
所述服务端分别与所述客户端和所述访问辅助组件通信;
所述服务端用于执行如权利要求1-4任一项所述的容器的远程访问方法;
所述访问辅助组件用于执行如权利要求5-7任一项所述的容器的远程访问方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-4,或者,5-7任一项所述的容器的远程访问方法。
CN202010272591.3A 2020-04-09 2020-04-09 容器的远程访问方法、系统、服务端和访问辅助组件 Pending CN111510444A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010272591.3A CN111510444A (zh) 2020-04-09 2020-04-09 容器的远程访问方法、系统、服务端和访问辅助组件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010272591.3A CN111510444A (zh) 2020-04-09 2020-04-09 容器的远程访问方法、系统、服务端和访问辅助组件

Publications (1)

Publication Number Publication Date
CN111510444A true CN111510444A (zh) 2020-08-07

Family

ID=71864848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010272591.3A Pending CN111510444A (zh) 2020-04-09 2020-04-09 容器的远程访问方法、系统、服务端和访问辅助组件

Country Status (1)

Country Link
CN (1) CN111510444A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112162825A (zh) * 2020-10-12 2021-01-01 北京首都在线科技股份有限公司 设备配置方法、装置、设备及存储介质
CN113656148A (zh) * 2021-08-20 2021-11-16 北京天融信网络安全技术有限公司 一种容器管理的方法、装置、电子设备及可读存储介质
CN113852681A (zh) * 2021-09-22 2021-12-28 深信服科技股份有限公司 一种网关认证方法、装置及安全网关设备
CN114301799A (zh) * 2021-11-23 2022-04-08 航天信息股份有限公司 基于ganymed-ssh2的远程运维方法和装置
WO2022247359A1 (zh) * 2021-05-27 2022-12-01 北京百度网讯科技有限公司 集群访问方法、装置、电子设备和介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106685949A (zh) * 2016-12-24 2017-05-17 上海七牛信息技术有限公司 一种容器访问方法、装置以及系统
CN107608763A (zh) * 2017-09-26 2018-01-19 中国科学院声学研究所 一种通过Web浏览器进入Docker容器操作的方法
US20190116170A1 (en) * 2017-10-18 2019-04-18 General Electric Company Apparatus and method for containerization at a cluster
US10404474B1 (en) * 2017-02-02 2019-09-03 Citigroup Technology, Inc. Systems and methods for container orchestration security
CN110311887A (zh) * 2019-05-07 2019-10-08 重庆天蓬网络有限公司 基于企业多用户管理多Kubernetes集群的系统
CN110493269A (zh) * 2019-09-24 2019-11-22 福建中锐网络股份有限公司 一种Web远程Docker容器桌面的方法
CN110784446A (zh) * 2019-09-18 2020-02-11 平安科技(深圳)有限公司 基于用户权限的云资源获取方法、装置及计算机设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106685949A (zh) * 2016-12-24 2017-05-17 上海七牛信息技术有限公司 一种容器访问方法、装置以及系统
US10404474B1 (en) * 2017-02-02 2019-09-03 Citigroup Technology, Inc. Systems and methods for container orchestration security
CN107608763A (zh) * 2017-09-26 2018-01-19 中国科学院声学研究所 一种通过Web浏览器进入Docker容器操作的方法
US20190116170A1 (en) * 2017-10-18 2019-04-18 General Electric Company Apparatus and method for containerization at a cluster
CN110311887A (zh) * 2019-05-07 2019-10-08 重庆天蓬网络有限公司 基于企业多用户管理多Kubernetes集群的系统
CN110784446A (zh) * 2019-09-18 2020-02-11 平安科技(深圳)有限公司 基于用户权限的云资源获取方法、装置及计算机设备
CN110493269A (zh) * 2019-09-24 2019-11-22 福建中锐网络股份有限公司 一种Web远程Docker容器桌面的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
梅丽蓉: "CentralShell:Linux容器集中管理终端", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
青岛英谷教育科技股份有限公司等: "《云计算框架与应用》", 28 February 2019 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112162825A (zh) * 2020-10-12 2021-01-01 北京首都在线科技股份有限公司 设备配置方法、装置、设备及存储介质
WO2022247359A1 (zh) * 2021-05-27 2022-12-01 北京百度网讯科技有限公司 集群访问方法、装置、电子设备和介质
CN113656148A (zh) * 2021-08-20 2021-11-16 北京天融信网络安全技术有限公司 一种容器管理的方法、装置、电子设备及可读存储介质
CN113656148B (zh) * 2021-08-20 2024-02-06 北京天融信网络安全技术有限公司 一种容器管理的方法、装置、电子设备及可读存储介质
CN113852681A (zh) * 2021-09-22 2021-12-28 深信服科技股份有限公司 一种网关认证方法、装置及安全网关设备
CN114301799A (zh) * 2021-11-23 2022-04-08 航天信息股份有限公司 基于ganymed-ssh2的远程运维方法和装置

Similar Documents

Publication Publication Date Title
US11496523B2 (en) Policy engine for cloud platform
CN111510444A (zh) 容器的远程访问方法、系统、服务端和访问辅助组件
US11627124B2 (en) Secured login management to container image registry in a virtualized computer system
JP6559807B2 (ja) コマンド実行に対するユーザアクセスの制御
US20210311758A1 (en) Management of a container image registry in a virtualized computer system
US9489227B2 (en) Apparatus and method for virtual desktop service
US10833949B2 (en) Extension resource groups of provider network services
US10089130B2 (en) Virtual desktop service apparatus and method
CN110224860B (zh) 负载均衡应用创建方法、装置、计算机设备及存储介质
WO2019036012A1 (en) SINGLE SIGNATURE OF A USER OF AN APPLICATION
US11392675B2 (en) Request authorization using recipe-based service coordination
WO2020134838A1 (zh) 权限验证方法及相关装置
US20200159555A1 (en) Provider network service extensions
US11245577B2 (en) Template-based onboarding of internet-connectible devices
US20170228245A1 (en) Managed virtual machine deployment
KR20140143953A (ko) 가상 데스크탑 서비스를 위한 장치 및 가상 데스크탑 서비스 방법
CN113032805B (zh) 一种数据访问方法、装置、电子设备及存储介质
US11620147B2 (en) Metadata service provisioning in a cloud environment
CN115665265B (zh) 请求处理方法、装置、设备、存储介质及系统
CN110049106B (zh) 业务请求处理系统及方法
CN111600755A (zh) 上网行为管理系统和方法
WO2023170653A1 (en) System and method for providing multi factor authorization to rdp services through a zero trust cloud environment
CN108053288B (zh) 一种业务编排下发的方法及装置
CN111142926B (zh) 多系统管理方法及装置
US11798001B2 (en) Progressively validating access tokens

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20221125

Address after: 200444 3F, No. 15, Lane 2999, Hutai Road, Baoshan District, Shanghai

Applicant after: Shanghai Yunli Information Technology Co.,Ltd.

Address before: 200444 Floor 3, No. 13, Lane 2999, Hutai Road, Baoshan District, Shanghai

Applicant before: Shanghai Yunli Technology Co.,Ltd.

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200807