一种远程访问物理机的方法、装置及系统与流程

文档序号:19250055发布日期:2019-11-27 20:05阅读:385来源:国知局
一种远程访问物理机的方法、装置及系统与流程

本发明涉及计算机技术领域,特别涉及一种远程访问物理机的方法、装置及系统。



背景技术:

虚拟化技术,是把一个物理机通过虚拟机管理程序(hypervisor)虚拟为多个独立主机的技术,每个独立主机称之为虚拟机(virtualmachine,vm),云服务提供商通过虚拟化技术给用户提供虚拟机服务。

目前,用户可以通过公网ip,基于ssh(secureshell,安全外壳协议)来远程访问物理机,以实现对物理机的管理。

但是,公网ip经注册并申请才可获得,故现有实现方式的费用投入较高。



技术实现要素:

本发明提供了一种远程访问物理机的方法、装置及系统,能够降低费用投入。

为了达到上述目的,本发明是通过如下技术方案实现的:

第一方面,本发明提供了一种远程访问物理机的方法,应用于云控制台,包括:

接收外部客户端发来的登录信息;

对所述登录信息进行验证,并在验证通过时,控制所述客户端登录所述云控制台;

在接收到所述客户端发来的针对第一物理机的远程连接请求时,触发外部的云后台服务器;

接收所述云后台服务器返回的针对所述远程连接请求的url(uniformresourcelocator,统一资源定位符);

根据所述登录信息生成token(令牌);

将所述url和所述token发送给所述客户端;

在接收到所述客户端发来的,针对第一物理机且携带有所述token的访问请求时,触发所述云后台服务器;

在接收到所述云后台服务器发来的对所述token鉴权通过的通知时,利用安装的shellinabox,通过ipmi(intelligentplatformmanagementinterface,智能平台管理接口),生成所述第一物理机的远程连接并发送给所述客户端。

进一步地,所述token中包括有所述登录信息所对应的用户信息和用户权限。

进一步地,所述云控制台为基于openstack的云控制台,并使用所述openstack的ironic和nova来管理每一个物理机;

所述通过ipmi,生成所述第一物理机的远程连接并发送给所述客户端,包括:根据ipmi的ipmitool的console功能,获取所述第一物理机的远程连接,并通过将所述远程连接转发到所述shellinabox启动的一个网络服务上,以发送给所述客户端。

第二方面,本发明提供了一种远程访问物理机的方法,应用于客户端,包括:

将外部输入的登录信息发送给外部的云控制台;

在所述登录信息验证通过时,登录所述云控制台;

通过浏览器展示每一个外部物理机的远程连接按钮;

在监测到外部触发第一物理机的远程连接按钮时,向所述云控制台发送针对所述第一物理机的远程连接请求;

通过浏览器记录所述云控制台发来的、根据所述登录信息而生成的令牌token,并在新窗口打开所述云控制台发来的、针对所述远程连接请求的统一资源定位符url;

在监测到外部访问所述url时,将针对所述第一物理机且携带所述token的访问请求发送给所述云控制台;

基于所述云控制台发来的、所述第一物理机的远程连接,通过浏览器访问所述第一物理机。

第三方面,本发明提供了一种云控制台,包括:

用户登录控制单元,用于接收外部客户端发来的登录信息;对所述登录信息进行验证,并在验证通过时,控制所述客户端登录所述云控制台;

远程连接请求处理单元,用于在接收到所述客户端发来的针对第一物理机的远程连接请求时,触发外部的云后台服务器;接收所述云后台服务器返回的针对所述远程连接请求的统一资源定位符url;根据所述登录信息生成令牌token;将所述url和所述token发送给所述客户端;

访问请求处理单元,用于在接收到所述客户端发来的,针对第一物理机且携带有所述token的访问请求时,触发所述云后台服务器;在接收到所述云后台服务器发来的对所述token鉴权通过的通知时,利用安装的shellinabox,通过智能平台管理接口ipmi,生成所述第一物理机的远程连接并发送给所述客户端。

进一步地,所述云控制台为基于openstack的云控制台,并使用所述openstack的ironic和nova来管理每一个物理机;

所述访问请求处理单元,用于根据ipmi的ipmitool的console功能,获取所述第一物理机的远程连接,并通过将所述远程连接转发到所述shellinabox启动的一个网络服务上,以发送给所述客户端。

第四方面,本发明提供了一种客户端,包括:

用户登录单元,用于将外部输入的登录信息发送给外部的云控制台;在所述登录信息验证通过时,登录所述云控制台;

远程连接请求单元,用于通过浏览器展示每一个外部物理机的远程连接按钮;在监测到外部触发第一物理机的远程连接按钮时,向所述云控制台发送针对所述第一物理机的远程连接请求;通过浏览器记录所述云控制台发来的、根据所述登录信息而生成的令牌token,并在新窗口打开所述云控制台发来的、针对所述远程连接请求的统一资源定位符url;

访问请求单元,用于在监测到外部访问所述url时,将针对所述第一物理机且携带所述token的访问请求发送给所述云控制台;基于所述云控制台发来的、所述第一物理机的远程连接,通过浏览器访问所述第一物理机。

第五方面,本发明提供了一种远程访问物理机的系统,包括:上述任一所述的云控制台,以及至少一个上述客户端。

进一步地,该远程访问物理机的系统还包括:云后台服务器;

其中,所述云后台服务器,用于在监测到外部云控制台基于一远程连接请求的触发操作时,利用zuul,根据所述远程连接请求所针对的第一物理机,生成针对所述远程连接请求的统一资源定位符url;将所述url返回给所述云控制台;在监测到所述云控制台基于一访问请求的触发操作时,利用所述zuul,根据所述访问请求所针对的所述第一物理机,对所述访问请求所携带的令牌token进行鉴权处理;若鉴权通过,向所述云控制台发送对所述token鉴权通过的通知。

进一步地,该远程访问物理机的系统还包括:至少一个物理机;

所述云控制台为基于openstack的云控制台;

所述云控制台,用于使用所述openstack的ironic和nova来管理每一个所述物理机。

本发明提供了一种远程访问物理机的方法、装置及系统,该方法包括:云控制台验证客户端的登录信息,在验证通过时控制客户端登录;客户端发来针对物理机的远程连接请求时,触发云后台服务器以使其返回针对远程连接请求的url,根据登录信息生成token,并将url和token发送给客户端;客户端发来针对该物理机且携带有token的访问请求时,触发云后台服务器对token鉴权,并在鉴权通过时,利用安装的shellinabox,通过ipmi生成该物理机的远程连接并发送给客户端。这一远程访问物理机的实现方式不依赖于公网ip,用户利用客户端上的浏览器即可实现对物理机的远程访问,故能够降低费用投入。

附图说明

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

图1是本发明一实施例提供的一种远程访问物理机的方法的流程图;

图2是本发明一实施例提供的另一种远程访问物理机的方法的流程图;

图3是本发明一实施例提供的又一种远程访问物理机的方法的流程图;

图4是本发明一实施例提供的一种云控制台的示意图;

图5是本发明一实施例提供的一种客户端的示意图;

图6是本发明一实施例提供的一种远程访问物理机的系统的示意图;

图7是本发明一实施例提供的另一种远程访问物理机的系统的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

如图1所示,本发明实施例提供了一种远程访问物理机的方法,应用于云控制台,可以包括以下步骤:

步骤101:接收外部客户端发来的登录信息。

步骤102:对所述登录信息进行验证,并在验证通过时,控制所述客户端登录所述云控制台。

步骤103:在接收到所述客户端发来的针对第一物理机的远程连接请求时,触发外部的云后台服务器。

步骤104:接收所述云后台服务器返回的针对所述远程连接请求的url。

步骤105:根据所述登录信息生成token。

步骤106:将所述url和所述token发送给所述客户端。

步骤107:在接收到所述客户端发来的,针对第一物理机且携带有所述token的访问请求时,触发所述云后台服务器。

步骤108:在接收到所述云后台服务器发来的对所述token鉴权通过的通知时,利用安装的shellinabox,通过ipmi,生成所述第一物理机的远程连接并发送给所述客户端。

本发明实施例提供了一种远程访问物理机的方法,该方法包括:云控制台验证客户端的登录信息,在验证通过时控制客户端登录;客户端发来针对物理机的远程连接请求时,触发云后台服务器以使其返回针对远程连接请求的url,根据登录信息生成token,并将url和token发送给客户端;客户端发来针对该物理机且携带有token的访问请求时,触发云后台服务器对token鉴权,并在鉴权通过时,利用安装的shellinabox,通过ipmi生成该物理机的远程连接并发送给客户端。这一远程访问物理机的实现方式不依赖于公网ip,用户利用客户端上的浏览器即可实现对物理机的远程访问,故能够降低费用投入。

详细地,这一物理机远程访问的实现,主要依赖于客户端、云控制台、云后台服务器这三个执行主体间的信息交互。

详细地,用户为远程访问物理机,首先可以基于自身的登录信息登录上云控制台的操作系统。用户通常可以在客户端的浏览器上打开登录页面,并输入登录信息。如此,云控制台可对其登录信息作校验,校验通过则允许登录。

客户端登录成功后,用户即可看到浏览器页面上展示的各个物理机的远程连接按钮。用户需要访问哪一物理机,即可点击相应远程连接按钮。对应地,客户端即可将相应远程连接请求发送给云控制台,以使其返回相应url。如此,该远程连接请求通常可以携带有所请求物理机的物理机标识。

云控制台收到远程连接请求后,即可触发云后台服务器返回相应url。具体地,可以将其中的物理机标识发送给云后台服务器,以使其返回相应物理机的url。云控制台再将收到的url返回给客户端,以便用户基于该url来访问物理机。

当然,物理机并非谁都有权访问,故为避免其他用户截取或获得该url后同样可以访问相应物理机,故在给客户端返回url的同时,还可以返回用户访问物理机的访问凭证。

这一凭证即可以为token。对应地,在云控制台可以添加过滤器,要求用户访问url的时候,提供云用户的token用来做权限验证,以保护远程连接安全。

对于token的生成,由于云控制台校验各用户的登录信息,故可根据登录信息来获取内部预存的相应用户信息和用户权限,并基于此来生成token。token发送给客户端后,通常直接在客户端的浏览器中进行记录,而并不提供给用户。如此,客户端发送访问请求时,即可携带上浏览器中已记录的token。

此外,用户登录并请求访问物理机时,云控制台会为其生成token,故用户下次登录时,会重新生成token,而用户退出登录时,客户端浏览器中记录的token通常会失效。如此,即便他人获知了url,但由于并不持有token,故同样无法访问物理机。

基于此,本发明实施例中,用户可以通过浏览器以远程连接的方式登陆物理机的操作系统,并且在创建远程连接的过程中包含权限验证,在保证便捷的同时实现了安全性。

基于上述内容,用户打开url并请求访问相应物理机时,客户端会发出访问请求,该访问请求可携带有相应物理机标识和浏览器中记录的token,以便后续鉴权所用。

云控制台收到访问请求后,即可触发云后台服务器作鉴权处理。具体地,可以把物理机标识和token发送给云后台服务器,以使其检验相应用户是否对该物理机有访问权限,若有权限则会鉴权通过,否则不通过。

鉴权通过后,云控制台即可利用预先安装好的shellinabox,通过ipmi,来生成相应物理机的远程连接,并返回给客户端。如此,用户即可基于该远程连接,来远程访问物理机。

详细地,shellinabox,是一款自由开源的基于web的ajax的终端模拟器。它使用ajax技术,通过web浏览器提供了类似原生的shell的外观和感受。详细地,ajax(asynchronousjavascriptandxml,异步javascript和xml),是指一种创建交互式网页应用的网页开发技术。

详细地,ipmi的基础在于运行于bmc(baseboardmanagementcontroller,基板管理控制器)的专业固件。这管理子系统独立于cpu、bios(basicinputoutputsystem,基本输入输出系统)和操作系统。这些“自治”特性消除了所有依操作系统所遇到的限制,例如操作系统不响应或未加载的情况。

基于上述内容,在本发明的一个实施例中,所述token中包括有所述登录信息所对应的用户信息和用户权限。

在本发明的一个实施例中,为减少云控制台的计算量,云控制台还可触发云后台服务器来生成token。如此,各个用户登录信息所对应的用户信息和用户权限可以在云后台服务器中预先存储。

在本发明的一个实施例中,所述云控制台为基于openstack的云控制台,并使用所述openstack的ironic和nova来管理每一个物理机;

所述通过ipmi,生成所述第一物理机的远程连接并发送给所述客户端,包括:根据ipmi的ipmitool的console功能,获取所述第一物理机的远程连接,并通过将所述远程连接转发到所述shellinabox启动的一个网络服务上,以发送给所述客户端。

详细地,openstack是一个开源的云计算管理平台项目,ironic是openstack中管理物理机的插件,openstack可以使用ironic的驱动像管理虚拟机那样管理物理机。

详细地,可以在云控制器的云内网安装shellinabox,shellinabox通过ipmi的console功能,生成物理机的远程连接。ipmitool是一种可用在linux系统下的命令行方式的ipmi平台管理工具,通过它可以实远程连接物理机的功能。详细地,shellinabox可以通过impitool获取物理机的远程连接,并将远程连接转发到shellinabox启动的一个网络服务上。

因此,本发明实施例提供了为ironic管理的linux物理机,提供可鉴权的远程连接的实现方式。

与上述应用于云控制台的实现方式相对应地,如图2所示,本发明一个实施例提供了一种远程访问物理机的方法,应用于客户端,可以包括以下步骤:

步骤201:将外部输入的登录信息发送给外部的云控制台。

步骤202:在所述登录信息验证通过时,登录所述云控制台。

步骤203:通过浏览器展示每一个外部物理机的远程连接按钮。

步骤204:在监测到外部触发第一物理机的远程连接按钮时,向所述云控制台发送针对所述第一物理机的远程连接请求。

步骤205:通过浏览器记录所述云控制台发来的、根据所述登录信息而生成的token,并在新窗口打开所述云控制台发来的、针对所述远程连接请求的url。

步骤206:在监测到外部访问所述url时,将针对所述第一物理机且携带所述token的访问请求发送给所述云控制台。

步骤207:基于所述云控制台发来的、所述第一物理机的远程连接,通过浏览器访问所述第一物理机。

本发明实施例中,基于客户端,用户首先需要利用自身的登录信息,登录云控制台的操作系统;然后,基于云控制台操作页面上显示的各物理机的远程连接按钮,用户可以按需请求访问任一物理机;用户请求访问一物理机时,首先需进入其操作界面,故云控制台会先返回该物理机的url;用户基于url需要访问物理机以作管理时,云控制台会对其作鉴权,只有鉴权通过后,云控制台才会进一步返回该物理机的远程连接,如此,用户基于远程连接来操控物理机。

基于上述内容,如图3所示,本发明一个实施例提供了一种远程访问物理机的方法,可以包括以下步骤:

步骤301:客户端将外部输入的登录信息发送给云控制台。

步骤302:云控制台对登录信息进行验证,并在验证通过时,控制客户端登录云控制台。

步骤303:客户端登录云控制台后,通过浏览器展示每一个物理机的远程连接按钮,并在监测到外部触发第一物理机的远程连接按钮时,向云控制台发送远程连接请求,该远程连接请求携带有第一物理机的物理机标识。

步骤304:云控制台接收远程连接请求,将其中的物理机标识发送给云后台服务器。

步骤305:云后台服务器利用zuul,根据接收到的物理机标识,生成第一物理机的url并返回给云控制台。

步骤306:云控制台接收url,并根据登录信息生成token,将url和token发送给客户端。

该token中可以包括登录信息所对应的用户信息和用户权限,以便于后续基于此对token进行鉴权。

步骤307:客户端通过浏览器记录云控制台发来的token,并在新窗口打开云控制台发来的url。

步骤308:客户端在监测到外部访问url时,向云控制台发送访问请求,该访问请求携带有记录的token和第一物理机的物理机标识。

步骤309:云控制台接收到访问请求时,将其中的token和物理机标识发送给云后台服务器。

步骤310:云后台服务器利用zuul,根据接收到的物理机标识,对接收到的token进行鉴权处理,若鉴权通过,通知云控制台鉴权通过。

步骤311:云控制台接收到通知时,利用安装的shellinabox,通过ipmi,生成第一物理机的远程连接并发送给客户端。

步骤312:客户端基于云控制台发来的远程连接,通过浏览器访问第一物理机。

如图4所示,本发明一个实施例提供了一种云控制台,可以包括:

用户登录控制单元401,用于接收外部客户端发来的登录信息;对所述登录信息进行验证,并在验证通过时,控制所述客户端登录所述云控制台;

远程连接请求处理单元402,用于在接收到所述客户端发来的针对第一物理机的远程连接请求时,触发外部的云后台服务器;接收所述云后台服务器返回的针对所述远程连接请求的url;根据所述登录信息生成token;将所述url和所述token发送给所述客户端;

访问请求处理单元403,用于在接收到所述客户端发来的,针对第一物理机且携带有所述token的访问请求时,触发所述云后台服务器;在接收到所述云后台服务器发来的对所述token鉴权通过的通知时,利用安装的shellinabox,通过智能平台管理接口ipmi,生成所述第一物理机的远程连接并发送给所述客户端。

在本发明一个实施例中,所述云控制台为基于openstack的云控制台,并使用所述openstack的ironic和nova来管理每一个物理机;

所述访问请求处理单元403,用于根据ipmi的ipmitool的console功能,获取所述第一物理机的远程连接,并通过将所述远程连接转发到所述shellinabox启动的一个网络服务上,以发送给所述客户端。

如图5所示,本发明一个实施例提供了一种客户端,包括:

用户登录单元501,用于将外部输入的登录信息发送给外部的云控制台;在所述登录信息验证通过时,登录所述云控制台;

远程连接请求单元502,用于通过浏览器展示每一个外部物理机的远程连接按钮;在监测到外部触发第一物理机的远程连接按钮时,向所述云控制台发送针对所述第一物理机的远程连接请求;通过浏览器记录所述云控制台发来的、根据所述登录信息而生成的token,并在新窗口打开所述云控制台发来的、针对所述远程连接请求的url;

访问请求单元503,用于在监测到外部访问所述url时,将针对所述第一物理机且携带所述token的访问请求发送给所述云控制台;基于所述云控制台发来的、所述第一物理机的远程连接,通过浏览器访问所述第一物理机。

如图6所示,本发明一个实施例提供了一种远程访问物理机的系统,可以包括:上述任一所述的云控制台601,以及至少一个上述客户端602。

在本发明一个实施例中,请参考图7,该远程访问物理机的系统还包括:云后台服务器701;

其中,所述云后台服务器701,用于在监测到外部云控制台601基于一远程连接请求的触发操作时,利用zuul,根据所述远程连接请求所针对的第一物理机,生成针对所述远程连接请求的url;将所述url返回给所述云控制台601;在监测到所述云控制台601基于一访问请求的触发操作时,利用所述zuul,根据所述访问请求所针对的所述第一物理机,对所述访问请求所携带的token进行鉴权处理;若鉴权通过,向所述云控制台601发送对所述token鉴权通过的通知。

详细地,zuul是netflix开源的微服务网关,可以对发送到服务端的请求进行一些预处理,比如安全验证、动态路由、负载分配等。本发明实施例中,可以使用zuul将内网里面的shellinabox的网络服务,代理到公网url上面提供用户访问。

在本发明一个实施例中,请参考图7,该远程访问物理机的系统还包括:至少一个物理机702;

所述云控制台601为基于openstack的云控制台;

所述云控制台601,用于使用所述openstack的ironic和nova来管理每一个所述物理机702。

上述装置、系统内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

综上所述,本发明的实施例具有至少如下有益效果:

1、本发明实施例中,云控制台验证客户端的登录信息,在验证通过时控制客户端登录;客户端发来针对物理机的远程连接请求时,触发云后台服务器以使其返回针对远程连接请求的url,根据登录信息生成token,并将url和token发送给客户端;客户端发来针对该物理机且携带有token的访问请求时,触发云后台服务器对token鉴权,并在鉴权通过时,利用安装的shellinabox,通过ipmi生成该物理机的远程连接并发送给客户端。这一远程访问物理机的实现方式不依赖于公网ip,用户利用客户端上的浏览器即可实现对物理机的远程访问,故能够降低费用投入。

2、本发明实施例中,用户可以通过浏览器以远程连接的方式登陆物理机的操作系统,并且在创建远程连接的过程中包含权限验证,在保证便捷的同时实现了安全性。

需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质中。

最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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