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