基于DSA秘钥认证的集群节点免密码登录实现

xiaoxiao2021-02-28  9

场景:此篇基于hdfs完全分布式集群搭建(四个节点:xiaoku、xiaoku02、xiaoku03、xiaoku04),各节点之间需要做免密码登录,来完成集群自我管理的。同样也适用于其他任何类似情况。

一、为什么要免密码登录?

我们通过ssh远程执行命令时,必须要输入密码认证后才能执行操作流程,如果想要达到集群自我管理的目的,必须要做免密码登录。

二、登录自己

[root@xiaoku ~]# ssh localhost

这里会提示让你输入用户名和密码。不管是登录自己还是登录其他节点在没有配置的情况下,每次都需要验证。 登录自己之后,会在家目录下生成.ssh目录,目录下会生成一个文件这个文件里保存着访问过这个节点的公钥。

三、设置免密码登录

[root@xiaoku ~]# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 解释一下这个,-t后的dsa是加密方式,-P后的''指的是密码为空。

执行完之后会生成两个文件 id_dsa里面存放的是私钥,id_dsa.pub里存放的是公钥,如果将id_dsa.pub中的公钥分发给指定节点就能够完成免密码登录。

[root@xiaoku ~]# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

登录时,authorized_keys中的公钥比对之后,完成登录操作。

下面基于hdfs来完成具体流程(其他任何类似情况同样适用):

1、主节点执行上述两步
2、三个从节点依次登录自己
目的是生成.ssh目录和known_hosts [root@xiaoku02 ~]# ssh localhost [root@xiaoku03 ~]# ssh localhost [root@xiaoku04 ~]# ssh localhost
3、将主节点中的id_dsa.pub文件拷贝到各节点
[root@xiaoku ~]# cd .ssh [root@xiaoku .ssh]# scp id_dsa.pub xiaoku02:~/xiaoku.pub [root@xiaoku .ssh]# scp id_dsa.pub xiaoku03:~/xiaoku.pub [root@xiaoku .ssh]# scp id_dsa.pub xiaoku04:~/xiaoku.pub 这时候还需要输入密码,完了之后会把公钥暂存到一个临时文件中,用主节点名称命名是为了便于区分,将来可能会有其他节点对该节点做免秘钥。
4、将公钥存入authorized_keys
[root@xiaoku02 ~]# cat xiaoku.pub >> ~/.ssh/authorized_keys [root@xiaoku03 ~]# cat xiaoku.pub >> ~/.ssh/authorized_keys [root@xiaoku04 ~]# cat xiaoku.pub >> ~/.ssh/authorized_keys
5、测试结果

这样完成之后在启动hdfs集群时,namenode就能管理整个集群,起到自启secondarynamenode和datanode的目的。

转载请注明原文地址: https://www.6miu.com/read-2400024.html

最新回复(0)