前言:
搭建集群前,实现多服务器之间通信方便操作。(免密登录)
我准备了3台服务器,分别为:hadoop01,hadoop02,hadoop03
原理:
公钥和秘钥的关系。
每台服务器会生成一个秘钥文件和公钥文件,可以通过某台服务器的公钥实现免密登录。思路:将多台服务器的公钥全部放到同一个文件中,并将这个文件分发到每台服务器中,因为秘钥和公钥是对应关系,既能实现免密访问。
命令:
hadoop01界面操作:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cd /root/.ssh (进入.ssh文件夹下 可看到生成的文件夹)
将公钥文件内容拷贝到公共文件中:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
分别在hadoop02和hadoop03中操作(将02和03上的公钥发送到hadoop01中的公共文件中):
ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop01
ok,目前的这种情况应该是02和03能免密登录01,反过来不行。
自行最后一步----将01上的公共文件分别分发给02和03
[root@hadoop01 .ssh]# scp authorized_keys hadoop02:'pwd'
[root@hadoop01 .ssh]# scp authorized_keys hadoop03:'pwd'
注意 : `pwd` 中这个不是单引号,而是输入法为英文时,tab键上面的波浪建。不关注的可以直接拷我的命令 = =
在hadoop01上操作: [root@hadoop01 .ssh]# ssh hadoop02
在hadoop02上操作: [root@hadoop01 .ssh]# ssh hadoop03
在hadoop03上操作: [root@hadoop01 .ssh]# ssh hadoop01
可无视这段,就是想说上面配置完成后,3台服务器已经实现了任意两台服务器之间的免密登录。