Linux 如何实现集群相互免密
转至:https://baijiahao.baidu.com/s?id=1698092407993351893&wfr=spider&for=pc
Linux实现集群内相互免密的优势是,集群间通信畅通无阻,非常有利于做自动化部署等,甚至在一定程度提高集群性能。
一、SSH免密登陆原理
1.客户端生成公钥和私钥,然后手动将Client的公钥添加到Server端的authorized_key中(这里个人觉得可以用scp写个脚本,将管理节点的公钥分发到非管理节点的authorized_key中)。
2.客户端向服务端发送登录请求,服务端生成随机数R,并用客户端的公钥加密后得到Public(R),将其发送到客户端,客户端利用私钥解密得到R,利用MD5算法对R和建立会话的Session Key加密生成密文摘要Digest1,将Digest1发送到服务端。
3.在服务端对R和Session_Key利用相同的MD5算法生成摘要Digest2,比较Digest1和Digest2是否相同。
二、SSH实现集群内相互免密步骤
集群所有服务器生成密钥
[root@g1-1 ~]# ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa already exists Overwrite (y/n)? n
一路回车3下就行了,如果已经生成了他会在最后Overwrite是否重写重新生成。
三、将集群内每台服务器生成id_rsa.pub拷贝到第一台的authorized_keys并分发下去
集群所有服务器生成的id_rsa.pub复制到第一台的authorized_keys文件中,这样会有一个比较大的authorized_keys文件,包含了集群每台的id_rsa.pub文件,然后从第一台集群将authorized_keys分发到集群的所有服务器,scp命令即可。
假设有7台服务器分别是ip1ip2ip3ip4ip5ip6,g1是主服务器,操作员只需要将g1下以下命令:
[root@ g1 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
并去ip1-ip6服务器下ssh-keygen生成的id_rsa.pub拷贝到g1服务器的~/.ssh/authorized_keys文件中即可,再从g1服务器分发到ip1-ip6的所有服务器中,这样集群7台服务器就能免密了。
[root@g1 ~]# scp ~/.ssh/authorized_keys root@ip1:~/.ssh/ [root@g1 ~]# scp ~/.ssh/authorized_keys root@ip1:~/.ssh/ [root@g1 ~]# scp ~/.ssh/authorized_keys root@ip2:~/.ssh/ [root@g1 ~]# scp ~/.ssh/authorized_keys root@ip3:~/.ssh/ [root@g1 ~]# scp ~/.ssh/authorized_keys root@ip4:~/.ssh/ [root@g1 ~]# scp ~/.ssh/authorized_keys root@ip5:~/.ssh/ [root@g1 ~]# scp ~/.ssh/authorized_keys root@ip6:~/.ssh/
分发成功后,g1与ip1-ip6就实现Linux集群服务器免密了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?