一、
在master上使用root用户
vi /etc/ssh/sshd_config
#以下4行的注释需要打开
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
验证SSH服务状态,命令为:/etc/init.d/sshd status
重新启动SSH服务,命令为:/etc/init.d/sshd restart
以上操作再master和node1和node2都需要执行一遍在master节点切换到hadoop用户:
su hadoop
chmod 700 ~/.ssh
第一次登录需要输入密码,以后就不需要输入密码了。
这样就可以通过ssh使用hadoop用户登录master节点。
然后使用hadoop用户进入到node1节点
cd /home/hadoop/.ssh
接着执行下面的命令:ssh hadoop@master cat ~/.ssh/id_rsa.pub>> authorized_keys
将生成的密钥写入authorized_keys文件
重复上面步骤在node2节点
或者
分发主节点里配置好的authorized_keys到各从节点
scp /root/.ssh/authorized_keys root@node1:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@node2:/root/.ssh/authorized_keys
现在将node1和node2机器 .ssh/ 文件夹权限改为700,authorized_keys文件权限改为600(or 644)
chmod 700 /home/hadoop/.ssh
chmod 600 /home/hadoop/.ssh/authorized_keys
最后回到master机器,使用ssh hadoop@node1登录node1节点就不需要密码了,同样ssh hadoop@node2也不需要密码了
关闭防火墙:
能使用ssh登录之后,还需要做关闭防火墙的操作。
执行命令查看防火墙状态:
/etc/init.d/iptables status
或者
service iptables status
如果是开启状态则执行以下命令进行关闭并禁止。
注:如果用于生产环境,直接关闭防火墙是存在安全隐患的,我们可以通过配置防火墙的过滤规则,即将hadoop需要监听的那些端口配置到防火墙接受规则中。
/etc/init.d/iptables stop
或者
service iptables stop
同时,也需要关闭SELinux,可修改 /etc/selinux/config 文件,将其中的 SELINUX=enforcing 改为 SELINUX=disabled即可。