配置SSH免秘钥登录
在CDH中需要任意两个节点之间都可以免秘钥登录。节点两两免秘钥的根本原理如下:假设A节点需要免秘钥登录B节点,只要B节点上有A节点的公钥,那么A节点就可以免密登录当前B节点。
第一,需要在每台节点上安装ssh客户端,否则,不能使用ssh命令(最小化安装Liunx,默认没有安装ssh客户端):
yum -y install openssh-clients
第二,在每台节点执行如下命令,在每台节点的“~”目录下,创建.ssh目录,注意,不要手动创建这个目录,因为有权限问题。
cd ~
ssh localhost
#这里会需要输入节点密码#
exit
第三,在每台节点上执行如下命令,给当前节点创建公钥和私钥:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa''
ssh-keygen -t rsa
第四,将cm1,cm2,cm3的公钥copy到cm1上,这样,cm1,cm2,cm3节点都能登录cm1节点。命令如下:
1. 在cm1上执行如下命令,需要输入密码:
[root@cm1 .ssh]# ssh-copy-id cm1 #会在当前~/.ssh目录下生成authorized_keys文件,文件中存放当前cm1的公钥#
2. 在cm2上执行如下命令,需要输入密码:
[root@cm2 ~]# ssh-copy-id cm1 #会将cm2的公钥追加到cm1节点的authorized_keys文件中#
3. 在cm3上执行如下命令,需要输入密码:
[root@cm3 ~]# ssh-copy-id cm1 #会将cm3的公钥追加到cm1节点的authorized_keys文件中#
最后,将cm1节点上~/.ssh/authorized_keys拷贝到cm2和cm3节点的~/.ssh/目录下,执行如下命令:
在cm1上执行如下命令,需要输入密码:
[root@cm1 .ssh]# scp ~/.ssh/authorized_keys cm2:`pwd`
[root@cm1 .ssh]# scp ~/.ssh/authorized_keys cm3:`pwd`
经过以上步骤,节点两两免密完成。