SSH免密码登陆
os:redhat 6
hadoop 两个节点,一个master 一个slave
192.168.0.1 master
192.168.0.2. slave
1.修改每台机器的/etc/hosts,增加
192.168.0.1 master
192.168.0.2. slave
2.在每台机器上创建用户hadoop
useradd -g hadoop hadoop
passwd hadoop
给hadoop用户添加权限,打开/etc/sudoers文件:
在root ALL=(ALL) ALL
后面添加hadoop ALL=(ALL) ALL
后面都以hadoop用户来操作
3.在所有机器的/home/hadoop/目录下建立 .ssh文件夹
mkdir /home/hadoop
4.在master机器上生成密钥对
ssh-keygen -t rsa (注意:ssh与-keygen之间没有空格)
ssh-keygen -t rsa -P ''
一路回车即可。
转到.ssh目录 cd ~/.ssh 可以看到生成了id_rsa,和id_rsa.pub两个文件
5.执行
在NameNode机的.ssh目录下 cp id_rsa.pub authorized_keys
在DataNode1机的.ssh目录下scp id_rsa.pub root@NameNode:/home/hadoop/.ssh/id_rsa.pub.DataNode1
在secondNameNode机的.ssh目录下scp id_rsa.pub root@NameNode:/home/hadoop/.ssh/id_rsa.pub.SecondNameNode
在在NameNode机的.ssh目录下
cat id_rsa.pub.DataNode1 >> authorized_keys 可以用DataNode1 SSh 到 NameNode
cat id_rsa.pub.SecondNameNode >> authorized_keys
6.把Master上面的最终的authorized_keys文件复制到Slave机器的/home/hadoop/.ssh/文件下面
scp authorized_keys slave:~/.ssh
这样它们就可以互相访问了。
7.修改修改.ssh目录的权限以及authorized_keys 的权限(这个必须修改,要不然还是需要密码)
sudo chmod 644 ~/.ssh/authorized_keys
sudo chmod 700 ~/.ssh
正常情况下,到这个地方就可以SSH无密码登录了
在CentOS 6.5这个系统下,第7步不用做也是可以的
输入ssh DataNode1 进行测试。
http://heylinux.com/archives/2830.html