CN113518095B - Ssh集群的部署方法、装置、设备以及存储介质 - Google Patents
Ssh集群的部署方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN113518095B CN113518095B CN202111074503.XA CN202111074503A CN113518095B CN 113518095 B CN113518095 B CN 113518095B CN 202111074503 A CN202111074503 A CN 202111074503A CN 113518095 B CN113518095 B CN 113518095B
- Authority
- CN
- China
- Prior art keywords
- node
- ssh
- cluster
- nodes
- key
- 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
Links
Images
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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- 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/168—Implementing security features at a particular protocol layer above the transport layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例提供了一种SSH集群的部署方法、装置、设备以及存储介质。所述方法包括:登录SSH集群中任一节点;将需要向所述SSH集群中增加的节点的属性信息添加到所述任一节点的节点属性列表中;所述属性信息包括:公钥以及IP地址;遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,以便所述所有节点存储所述节点属性列表上的属性信息。以此方式,在需要向SSH集群中添加节点时,只需对节点的节点属性列表进行管理,即可自动实现所有节点间任意两台节点的免密过程,从而提高了SSH集群部署效率。
Description
技术领域
本公开涉及SSH技术领域,尤其涉及SSH集群部署的技术领域。
背景技术
目前,常用的集群系统(如Hadoop/Spark/HBase等)都是建立在Linux系统中,使用SSH(Secure Shell,安全外壳协议)作为核心通信通道。在通信中,为了避免SSH每次都需要输入密码进行安全验证,实现数据传输的自动化,通常的做法是使用公钥登录。
然而在集群中公钥登录所涉及的密钥管理,存在需要交互的密钥对太多这一问题,具体如下:
由于任意两个节点间的通信都需要一对密钥,所以在建立密钥后,每两台机器都需要进行彼此密钥交换。当有n个节点时,需要建立次密钥交换,如图1所示,当n=4时,有3*2=6条连接,然后进行6次密钥交换才能使得图1中的4个机器相互知道彼此的公钥,进而实现公钥登录。
除此之外,密钥管理时,需要用户手动管理密钥,如手动交换密钥、删除密钥等,这些问题都会导致SSH集群部署效率低、密钥管理效率也低。
发明内容
本公开提供了一种SSH集群的部署的方法、装置、设备以及存储介质。
根据本公开的第一方面,提供了一种SSH集群的部署方法。该方法包括:
登录SSH集群中任一节点;
将需要向所述SSH集群中增加的节点的属性信息添加到所述任一节点的节点属性列表中;所述属性信息包括:公钥以及IP地址;
遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,以便所述所有节点存储所述节点属性列表上的属性信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述增加的节点的私钥是在所述增加的节点接收到所述节点属性列表后,存储在所述增加的节点本地的。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述节点属性列表包括known_hosts列表以及authorized_keys列表,其中,所述known_hosts列表用于存储所述SSH集群中所有节点的IP地址,所述authorized_keys列表用于存储所述SSH集群中所有节点的公钥;
所述遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,包括:
遍历添加了所述增加的节点的IP地址的known_hosts列表对应的所有节点,将所述known_hosts列表中的IP地址添加到所述对应的所有节点的known_hosts列表中;
将添加了所述增加的节点的公钥的authorized_keys列表分发至所述对应的所有节点。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述属性信息还包括:公钥类型以及节点名称,
所述known_hosts列表还用于存储所述SSH集群中所有节点的节点名称;
所述authorized_keys列表还用于存储所述SSH集群中所有节点的公钥类型。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
所述SSH集群中需要删除的节点在离开所述SSH集群时,将携带有自身公钥的密钥删除命令在所述SSH集群中进行广播,以使所述SSH集群中的其他节点删除本地存储的所述需要删除的节点的属性信息。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述SSH集群中需要更新密钥的节点在密钥更新时,首先在所述SSH集群中广播携带有自身公钥的密钥删除命令,然后重新加入所述SSH集群。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
所述SSH集群中各节点将其自身的密钥加密后发送至验证设备进行有效性验证;其中,对密钥加密的密码为固定的或动态变化的;
若有效性验证不通过,则确认需要更新其密钥。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述任一节点在遍历所述节点属性列表对应的所有节点之前,在本地自动部署首次登录免询问脚本;和/或
所述任一节点在遍历所述节点属性列表对应的所有节点之前,在本地自动配置Linux expect或者SSHpass。
根据本公开的第二方面,提供了一种SSH集群的部署装置。该装置包括:
登录模块,用于登录SSH集群中任一节点;
添加模块,用于将需要向所述SSH集群中增加的节点的属性信息添加到所述任一节点的节点属性列表中;所述属性信息包括:公钥以及IP地址;
处理模块,用于遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,以便所述所有节点存储所述节点属性列表上的属性信息。
根据本公开的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。
根据本公开的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本公开的第一方面和/或第二发面的方法。
应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。附图用于更好地理解本方案,不构成对本公开的限定在附图中,相同或相似的附图标记表示相同或相似的元素,其中:
图1示出了相关技术中的SSH集群的结构示意图;
图2示出了根据本公开的实施例的SSH集群的部署方法的流程图;
图3示出了本公开中在SSH集群中增加服务器5后的结构示意图;
图4示出了根据本公开的实施例的SSH集群的部署装置的框图;
图5示出了能够实施本公开的实施例的示例性电子设备的方框图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的全部其他实施例,都属于本公开保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本公开中,在需要向SSH集群中添加节点时,只需对节点的节点列表和相应密钥(即节点属性列表)进行管理,即可自动实现所有节点间任意两台节点的免密过程,从而提高了SSH集群部署效率。
图2示出了根据本公开实施例的SSH集群的部署方法200的流程图。如图2所示,方法200包括:
步骤210,登录SSH集群中任一节点;SSH集群中的节点可以是终端或者服务器。
步骤220,将需要向所述SSH集群中增加的节点的属性信息添加到所述任一节点的节点属性列表中;所述属性信息包括:公钥以及IP(Internet Protocol Address,指互联网协议地址)地址;
步骤230,遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,以便所述所有节点存储所述节点属性列表上的属性信息。遍历所有节点即与该任一节点与所有节点一一建立SSH连接。
通过登录已有SSH集群中任一节点,可将需要将该SSH集群中新加入的节点的属性信息添加到该任一节点的节点属性列表中,这样该任一节点上就有了新加入的节点的属性信息,进而遍历节点属性列表对应的所有节点以便与该节点属性列表中的所有节点建立连接,这样就可将节点属性列表分发至所有节点,从而使得包括新增加的节点在内的所有节点上都能够存储节点属性列表上的属性信息,如此,即完成了SSH集群中节点的快速增加,也可通过一次分发的方式使得SSH集群中所有节点都获得了新加入节点的属性信息以及新加入的节点也获得了SSH集群中原来各节点的属性信息,避免SSH集群中新加入的节点与原来各节点需要如图1一样两两相互交换密钥才能获知彼此的属性信息,如此既提高了SSH集群部署效率,也减少了密钥交换次数,避免了手动交换密钥,提升了密钥管理效率。另外,通过本实施例的技术方案,还可避免需要安装额外的第三方免密钥管理工具才能实现密钥的自动化部分,如Jekins。
通过本公开的技术方案可以实现整个SSH集群所有节点的密钥自动化管理。同时本公开只利用了节点系统自带的一些常用的命令,即可实现对集群密钥配置的自动化管理。用户在添加或移除集群的节点时,只需对节点的节点列表和相应密钥(即节点属性列表)进行管理,即可自动实现所有节点间任意两台主机的免密过程。
分发的方式可以是并行分发,以进一步提高SSH集群中节点增加效率以及免密效率。
在一些实施例中,所述增加的节点的私钥是在所述增加的节点接收到所述节点属性列表后,存储在所述增加的节点本地的。
由于公私钥是配对的,私钥一般是保存在节点本地的并避免泄露,因而,增加的节点的私钥是在增加的节点接收到节点属性列表后,自动存储在该增加的节点本地的,以便在接收到使用与该私钥对应的公钥加密过的数据后,使用该私钥进行解密。
在一些实施例中,所述节点属性列表包括known_hosts列表以及authorized_keys列表,其中,所述known_hosts列表用于存储所述SSH集群中所有节点的IP地址,所述authorized_keys列表用于存储所述SSH集群中所有节点的公钥;
所述遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,包括:
遍历添加了所述增加的节点的IP地址的known_hosts列表对应的所有节点,将所述known_hosts列表中的IP地址添加到所述对应的所有节点的known_hosts列表中;
将添加了所述增加的节点的公钥的authorized_keys列表分发至所述对应的所有节点。
通过使用known_hosts列表以及authorized_keys列表分别存储SSH集群中所有节点的IP地址以及公钥,可确保将SSH集群中的不同信息进行分类存储,避免混乱;同样地,在遍历添加了所增加的节点的IP地址的known_hosts列表对应的所有节点(即与所有节点建立连接)之后,可将known_hosts列表中的IP地址自动添加到所述对应的所有节点的known_hosts列表中,以确保SSH集群中每个节点都将其他节点的IP地址存储在自身的known_hosts列表中;而将添加了所述增加的节点的公钥的authorized_keys列表分发至所述对应的所有节点,使得SSH集群中每个节点都可将其他节点的公钥存储至自身的authorized_keys列表中。
在一些实施例中,所述属性信息还包括:公钥类型以及节点名称,
所述known_hosts列表还用于存储所述SSH集群中所有节点的节点名称;
所述authorized_keys列表还用于存储所述SSH集群中所有节点的公钥类型。
属性信息还可以包括公钥类型以及节点名称,当然,属性信息还可以包括公钥的位数,从而丰富属性信息的多样性。
同样地,公钥类型和节点名称可以分类存储至节点的authorized_keys列表以及known_hosts列表中。
公钥类型可以是“dsa”、“ecdsa”、“ed25519”、“rsa”等。
在一些实施例中,所述方法还包括:
所述SSH集群中需要删除的节点在离开所述SSH集群时,将携带有自身公钥的密钥删除命令在所述SSH集群中进行广播,以使所述SSH集群中的其他节点删除本地存储的所述需要删除的节点的属性信息。
SSH集群中需要删除的节点在离开所述SSH集群时,可将携带有自身公钥的密钥删除命令在SSH集群中进行自动广播,使得SSH集群中其他节点在本地查找与该公钥匹配的属性信息,然后自动删除与该公钥匹配的属性信息即完成了删除该需要删除的节点的属性信息,如此,就完成了从SSH集群中删除某节点的操作,这样也有利于提高SSH集群的部署调整效率,且采用广播的方式也避免了SSH集群中某节点需要删除时,需要该节点一一分别告诉其他节点删除该节点的属性信息,减少了属性信息删除操作过程中的交互次数。
这样,在删除SSH集群中节点时,也能够自动化地将相应的SSH免密数据(即属性信息)进行删除,保证安全信息不泄露,以及有效地提高了集群中密钥的管理的自动化程度,同时在保证安全性的前提下,提高了集群管理人员的工作效率。
在一些实施例中,所述SSH集群中需要更新密钥的节点在密钥更新时,首先在所述SSH集群中广播携带有自身公钥的密钥删除命令,然后重新加入所述SSH集群。广播的方式可以是并行广播,从而进一步提高密钥更新效率。
SSH集群中需要更新密钥的节点在密钥更新时,首先可在SSH集群中自动广播携带有自身公钥的密钥删除命令,以便SSH集群中其他节点删除该需要更新密钥的节点,然后通过重新执行步骤210-230使得需要更新密钥的节点重新加入SSH集群中即完成了密钥的更新,如此,可高效完成SSH集群中密钥的更新,当然,在通过重新执行步骤220时,该需要更新密钥的节点的公钥要与之前离群时的公钥不一致。
在一些实施例中,所述方法还包括:
所述SSH集群中各节点将其自身的密钥加密后发送至验证设备进行有效性验证;其中,对密钥加密的密码为固定的或动态变化的;密钥可以是公钥或私钥。
若有效性验证不通过,则确认需要更新其密钥。
由于密钥可能是需要定期更新的,以增强密钥的安全性,所以, SSH集群中各节点可将其自身的密钥加密后发送至验证设备进行有效性验证,如验证时间有效性、密钥复杂程度的有效性等,然后在有效性验证不通过时,说明密钥已经无效,因而,可自动确认需要更新其密钥,从而确保密钥能够及时更新,提高密钥管理的有效性。当然,密钥验证过程中密码的安全性存在隐患,因而,需要对密钥进行加密,而对密钥进行加密的密码可以是固定的也可以是动态变化的,只不过动态变化的密码更能确保密钥的安全性。
在一些实施例中,所述任一节点在遍历所述节点属性列表对应的所有节点之前,在本地自动部署首次登录免询问脚本;和/或
所述任一节点在遍历所述节点属性列表对应的所有节点之前,在本地自动配置Linux expect或者SSHpass。
由于任一节点在遍历节点属性列表对应的所有节点之前,并没有将任一节点上存储的节点属性列表发送至对应的所有节点,需要增加的节点并不知晓该任一节点的属性信息,任一节点是无法使用公钥免密登录该需要增加的节点,所以为了使得任一节点在分发其节点属性列表至上述对应的所有节点之前仍然能够免密登录该需要增加的节点,可在任一节点的本地自动配置Linux expect或者SSHpass;当然,为了避免任一节点在首次登录该需要增加的节点时,被询问,可在该任一节点的本地自动部署首次登录免询问脚本,以避免任一节点首次登录该需要增加的节点时该任一节点的登录用户被询问是否连接该需要增加的节点,如此,可提高节点登录效率,提升用户体验。
另外,首次登录免询问以及Linux expect或者SSHpass的自动部署方式可通过脚本实现,避免人为手动部署,从而提高免密的配置效率,尤其是当SSH集群中节点比较多时,人为部署管理起来不仅比较麻烦,而且相对耗时且有一定的安全隐患。
下面将进一步说明本公开的技术方案:
一、密钥免密自动化部署方法
本公开能够处理集群中节点的三种情况(以集群中都是服务器为例):新服务器接入、删除已有服务器和更新所有服务器的密钥。现就这三种情况分别进行说明。
新服务器接入
在图1中,已经SSH集群中有4台服务器,在以下图3中,服务器5为新接入服务器。在插入服务器后,需要执行以下三个操作:
第1步 首先,为服务器5生成一对非对称密钥 kp5(公钥)和kq5(私钥);
第2步 登陆SSH集群中任意一台已有服务器,如服务器2;
第3步 将服务器5的信息添加到服务器2的 known_hosts中(存的是:已知公钥的服务器的IP地址\名称);
第4步 将kp5(公钥)添加到服务器2的 authorized_keys (用于存放公钥信息)中;
第5步 遍历服务器2的known_hosts列表对应的所有服务器,将known_hosts列表中的IP地址\名称添加到所有的已知服务器上,并将添加了kp5信息的authorized_keys分发出去。由于已经添加了服务器5的信息,所以也会发布到服务器5上。
第6步 登陆服务器5,并将kq5(私钥)保存在服务器5上。
通过以上操作,所有的服务器上都有了服务器5的公钥,而服务器5同步也从服务器2上复制回其他所有服务器的信息。这些信息中,也包括服务器5,所以理论上来说,服务器5也可以通过SSH登陆自己。
已有服务器删除
当一台服务器需要离开集群时,只需要在此机器上将自己的kp(公钥)发送到其自身的 known_hosts的所有机器上,通过使用删除命令,在其他机器上删除其kp即可。这个过程可以使用如 sed命令完成查找和删除工作,如:
sed -i '/$kp$/d' .ssh/authorized_keys
其中 $kp$ 表示的就是需要删除机器的kp的内容。
所有服务器密钥更新
出于安全的目的,我们往往需要定期更新所有服务器的密钥,以保证信息通信的安全。通过定义以上的内容我们可以方便地实现这个过程。具体可以如以下伪代码所示:
for host in known_hosts:
从 hosts 中删除 host
host 生成新密钥对
host 加入 hosts
二、密钥免密自动化部署中相关技术的实现方式:
实在构建SSH通道的过程中,都通用现有的一些命令完成,主要如下:
1 密钥建立
ssh-keygen -f id_rsa -t rsa -N ""
其中
-f输入文件名,会生成id_rsa和id_rsa.pub两个文件分别表示密钥和公钥;
-t是密钥内容,文件名称为 RSA;
-N解密的密码,默认为空。
2 首次登陆SSH免询问
在脚本中写入命令:ssh -o StrictHostKeyChecking=no user@host
注意事项
登陆的机器的信息会保存在本机的 ~/.ssh/known_hosts 中。
以后在登陆时使用以下命令即可:ssh -i ssum_key.pem user@host;
若要避免每次使用 -i 参数,可在 ~/.ssh/config 添加 IdentityFile ~/.ssh/ssum_key.pem;
若密钥路径为 ~/.ssh/id_rsa,也可省去 -i 参数。
3 免密钥执行命令
在免密完成前,与目标机器通信时是需要输入密码的,所以可以在登录机上使用sshpass或expect,注:仅需在用于人工控制集群的机器上安装1次即可。
sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@host
安装时也可以免交互,只需要在install后加上 -y 即可,如下所示:
apt install -y expect 示例脚本
#!/usr/bin/expectset timeout 30
spawn ssh -l root 106.12.31.101expect "password*"
send "\password\r"
interact
三、注意事项
* 在步骤一中第5步的遍历添加时,可能会有失败的情况,因为可能存在两两访问不通,此时可以重新申请加入;
* 在更新密钥的时候,由于连接支持并行,所以可以将 known_hosts 中的所有主机时间并行进行更新操作。
* 最后,有时密钥必需在使用时重新生成,而在判断密钥是否需要重新生成时,需要对已有的密钥的有效性需要进行验证,以在有效性验证未通过时,才需要进行密钥的重新生成。
而这个验证过程往往会导致密钥的泄露,所以可以对密钥对进行加密。对密钥加密的密码可以使用相同的密码,或根据一定的规则生成不同的密码。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本公开并不受所描述的动作顺序的限制,因为依据本公开,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本公开所必须的。
以上是关于方法实施例的介绍,以下通过装置实施例,对本公开所述方案进行进一步说明。
图4示出了根据本公开的实施例的SSH集群的部署装置400的方框图。如图4所示,装置400包括:
登录模块410,用于登录SSH集群中任一节点;
添加模块420,用于将需要向所述SSH集群中增加的节点的属性信息添加到所述任一节点的节点属性列表中;所述属性信息包括:公钥以及IP地址;
处理模块430,用于遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,以便所述所有节点存储所述节点属性列表上的属性信息。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图5示出了可以用来实施本公开的实施例的电子设备500的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
设备500包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元505加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储设备500操作所需的各种程序和数据。计算单元501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500中的多个部件连接至I/O接口505,包括:输入单元506,例如键盘、鼠标等;输出单元507,例如各种类型的显示器、扬声器等;存储单元508,例如磁盘、光盘等;以及通信单元509,例如网卡、调制解调器、无线通信收发机等。通信单元509允许设备500通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理,例如方法200。例如,在一些实施例中,方法XXX可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到设备500上。当计算机程序加载到RAM503并由计算单元501执行时,可以执行上文描述的方法XXX的一个或多个步骤。备选地,在其他实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法200。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (10)
1.一种SSH集群的部署方法,其特征在于,包括:
登录SSH集群中任一节点;
将需要向所述SSH集群中增加的节点的属性信息添加到所述任一节点的节点属性列表中;所述属性信息包括:公钥以及IP地址;
遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,以便所述所有节点存储所述节点属性列表上的属性信息;
所述方法还包括:
所述SSH集群中各节点将其自身的密钥加密后发送至验证设备进行有效性验证;其中,所述有效性验证包括:验证时间有效性和/或密钥复杂程度的有效性;
若有效性验证不通过,则确认需要更新其密钥。
2.根据权利要求1所述的方法,其特征在于,
所述增加的节点的私钥是在所述增加的节点接收到所述节点属性列表后,存储在所述增加的节点本地的。
3.根据权利要求1所述的方法,其特征在于,
所述节点属性列表包括known_hosts列表以及authorized_keys列表,其中,所述known_hosts列表用于存储所述SSH集群中所有节点的IP地址,所述authorized_keys列表用于存储所述SSH集群中所有节点的公钥;
所述遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,包括:
遍历添加了所述增加的节点的IP地址的known_hosts列表对应的所有节点,将所述known_hosts列表中的IP地址添加到所述对应的所有节点的known_hosts列表中;
将添加了所述增加的节点的公钥的authorized_keys列表分发至所述对应的所有节点。
4.根据权利要求3所述的方法,其特征在于,
所述属性信息还包括:公钥类型以及节点名称,
所述known_hosts列表还用于存储所述SSH集群中所有节点的节点名称;
所述authorized_keys列表还用于存储所述SSH集群中所有节点的公钥类型。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述SSH集群中需要删除的节点在离开所述SSH集群时,将携带有自身公钥的密钥删除命令在所述SSH集群中进行广播,以使所述SSH集群中的其他节点删除本地存储的所述需要删除的节点的属性信息。
6.根据权利要求1所述的方法,其特征在于,
所述SSH集群中需要更新密钥的节点在密钥更新时,首先在所述SSH集群中广播携带有自身公钥的密钥删除命令,然后重新加入所述SSH集群。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
对密钥加密的密码为固定的或动态变化的;
所述任一节点在遍历所述节点属性列表对应的所有节点之前,在本地自动部署首次登录免询问脚本;和/或
所述任一节点在遍历所述节点属性列表对应的所有节点之前,在本地自动配置Linuxexpect或者SSHpass。
8.一种SSH集群的部署装置,包括:
登录模块,用于登录SSH集群中任一节点;
添加模块,用于将需要向所述SSH集群中增加的节点的属性信息添加到所述任一节点的节点属性列表中;所述属性信息包括:公钥以及IP地址;
处理模块,用于遍历所述节点属性列表对应的所有节点,并分发所述节点属性列表,以便所述所有节点存储所述节点属性列表上的属性信息;
所述装置还用于:
所述SSH集群中各节点将其自身的密钥加密后发送至验证设备进行有效性验证;其中,所述有效性验证包括:验证时间有效性和/或密钥复杂程度的有效性;
若有效性验证不通过,则确认需要更新其密钥。
9.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111074503.XA CN113518095B (zh) | 2021-09-14 | 2021-09-14 | Ssh集群的部署方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111074503.XA CN113518095B (zh) | 2021-09-14 | 2021-09-14 | Ssh集群的部署方法、装置、设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113518095A CN113518095A (zh) | 2021-10-19 |
CN113518095B true CN113518095B (zh) | 2021-12-14 |
Family
ID=78063150
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111074503.XA Active CN113518095B (zh) | 2021-09-14 | 2021-09-14 | Ssh集群的部署方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113518095B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115118530B (zh) * | 2022-08-30 | 2023-01-10 | 太平金融科技服务(上海)有限公司深圳分公司 | 免密互信配置方法、系统、设备和介质 |
CN116996219A (zh) * | 2023-09-27 | 2023-11-03 | 天津卓朗昆仑云软件技术有限公司 | 密钥交互方法、系统及电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102455936A (zh) * | 2010-11-25 | 2012-05-16 | 中标软件有限公司 | 集群的快速部署方法 |
CN103067501A (zh) * | 2012-12-28 | 2013-04-24 | 广州杰赛科技股份有限公司 | PaaS平台的大数据处理方法 |
CN106534291A (zh) * | 2016-11-04 | 2017-03-22 | 广东电网有限责任公司电力科学研究院 | 基于大数据处理的电压监测方法 |
CN108259469A (zh) * | 2017-12-19 | 2018-07-06 | 浪潮软件集团有限公司 | 一种基于区块链的集群安全认证方法、一种节点及集群 |
CN108694053A (zh) * | 2018-05-14 | 2018-10-23 | 平安科技(深圳)有限公司 | 基于Ansible工具自动搭建Kubernetes主节点的方法及终端设备 |
CN109496404A (zh) * | 2016-06-20 | 2019-03-19 | 日本电信电话株式会社 | 终端装置、密钥分发管理装置、服务器/客户系统、通信方法、程序 |
CN110545286A (zh) * | 2019-09-18 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 加入联盟链、退出联盟链的方法及装置 |
CN111131318A (zh) * | 2019-12-31 | 2020-05-08 | 南京金宁汇科技有限公司 | 一种去中心化的密钥管理分发方法、系统及存储介质 |
CN111726343A (zh) * | 2020-06-11 | 2020-09-29 | 桂林电子科技大学 | 一种基于ipfs和区块链的电子公文安全传输方法 |
CN111782232A (zh) * | 2020-07-31 | 2020-10-16 | 平安银行股份有限公司 | 集群的部署方法、装置、终端设备及存储介质 |
CN112579353A (zh) * | 2020-12-15 | 2021-03-30 | 中国建设银行股份有限公司 | 自动运维方法、装置及大数据平台 |
CN112925653A (zh) * | 2021-05-11 | 2021-06-08 | 深圳市安软科技股份有限公司 | 虚拟化群集扩容方法、相关设备及计算机可读存储介质 |
-
2021
- 2021-09-14 CN CN202111074503.XA patent/CN113518095B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102455936A (zh) * | 2010-11-25 | 2012-05-16 | 中标软件有限公司 | 集群的快速部署方法 |
CN103067501A (zh) * | 2012-12-28 | 2013-04-24 | 广州杰赛科技股份有限公司 | PaaS平台的大数据处理方法 |
CN109496404A (zh) * | 2016-06-20 | 2019-03-19 | 日本电信电话株式会社 | 终端装置、密钥分发管理装置、服务器/客户系统、通信方法、程序 |
CN106534291A (zh) * | 2016-11-04 | 2017-03-22 | 广东电网有限责任公司电力科学研究院 | 基于大数据处理的电压监测方法 |
CN108259469A (zh) * | 2017-12-19 | 2018-07-06 | 浪潮软件集团有限公司 | 一种基于区块链的集群安全认证方法、一种节点及集群 |
CN108694053A (zh) * | 2018-05-14 | 2018-10-23 | 平安科技(深圳)有限公司 | 基于Ansible工具自动搭建Kubernetes主节点的方法及终端设备 |
CN110545286A (zh) * | 2019-09-18 | 2019-12-06 | 腾讯科技(深圳)有限公司 | 加入联盟链、退出联盟链的方法及装置 |
CN111131318A (zh) * | 2019-12-31 | 2020-05-08 | 南京金宁汇科技有限公司 | 一种去中心化的密钥管理分发方法、系统及存储介质 |
CN111726343A (zh) * | 2020-06-11 | 2020-09-29 | 桂林电子科技大学 | 一种基于ipfs和区块链的电子公文安全传输方法 |
CN111782232A (zh) * | 2020-07-31 | 2020-10-16 | 平安银行股份有限公司 | 集群的部署方法、装置、终端设备及存储介质 |
CN112579353A (zh) * | 2020-12-15 | 2021-03-30 | 中国建设银行股份有限公司 | 自动运维方法、装置及大数据平台 |
CN112925653A (zh) * | 2021-05-11 | 2021-06-08 | 深圳市安软科技股份有限公司 | 虚拟化群集扩容方法、相关设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113518095A (zh) | 2021-10-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11722465B2 (en) | Password encryption for hybrid cloud services | |
EP3785412B1 (en) | Dynamic scaling of virtual private network connections | |
JP6731023B2 (ja) | クライアントアプリケーションのためのセキュアなシングルサインオン及び条件付きアクセス | |
US9954664B2 (en) | Micro VPN tunneling for mobile platforms | |
JP6397957B2 (ja) | 管理されたブラウザの提供 | |
US10205760B2 (en) | Task coordination in distributed systems | |
CN109716726B (zh) | 基于云的应用部署中的凭证管理 | |
US11075999B2 (en) | Accessing resources in a remote access or cloud-based network environment | |
US11265217B2 (en) | Distributed ledger for configuration synchronization across groups of network devices | |
JP2019526843A (ja) | ホストされたアプリケーションへの動的アクセス | |
CN113518095B (zh) | Ssh集群的部署方法、装置、设备以及存储介质 | |
JP2018518738A (ja) | サーバまたは他の装置からのエントロピーに基づくクライアント装置の認証 | |
JP6603730B2 (ja) | フィールドプログラマブルビジネスロジックでのアプリケーションのラッピング | |
US11036688B2 (en) | Sharing of data with applications | |
US10721719B2 (en) | Optimizing caching of data in a network of nodes using a data mapping table by storing data requested at a cache location internal to a server node and updating the mapping table at a shared cache external to the server node | |
US20210119871A1 (en) | Proxy configuration for multiple networks | |
JP5643741B2 (ja) | 認証装置、認証方法および認証プログラム | |
CN112579353A (zh) | 自动运维方法、装置及大数据平台 | |
CN112910903A (zh) | Ssl证书免部署的方法、装置和系统 | |
US20180288009A1 (en) | Interception of Secure Shell Communication Sessions | |
CN110463157B (zh) | 用于分配spi值的系统与方法 | |
US20230231724A1 (en) | Blockchain based certificate pinning | |
CN114024780B (zh) | 一种基于物联网设备的节点信息处理方法及装置 | |
JP6275276B2 (ja) | サーバー装置、クライアント装置、サーバー装置プログラム、セッション管理方法、及びクライアントサーバーシステム | |
CN116846625A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |