linux免密码登录

一、

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

ssh-keygen -t rsa -P ""
然后cd /home/hadoop/.ssh目录下,会发现有两个文件:id_rsa  id_rsa.pub
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
将生成的密钥写入authorized_keys文件

chmod 700  ~/.ssh

chmod 600 ~/.ssh/authorized_keys
 
ssh hadoop@master

第一次登录需要输入密码,以后就不需要输入密码了。

这样就可以通过ssh使用hadoop用户登录master节点。

重复以上操作在node1和noode2节点,注意要使用hadoop用户来创建ssh免登录密码。
 
三、

然后使用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即可。

 
 
posted @ 2017-03-10 14:54  ZJason枫叶  阅读(243)  评论(0编辑  收藏  举报