您的位置:首页 > 其它

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

2018-01-24 09:56 239 查看
场景:此篇基于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


8a83

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的目的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐