1、环境假设
(4)让主节点(master)能够通过SSH免密码登陆两个节点(slave),为了实现这个功能,两个slave节点的公钥文件中必须包含主节点(master)的公钥信息
(1)3台服务器,主机名分别为master、slave1、slave2
(2)需要免密码登陆的用户名为hadoop2、配置步骤
(1) 确认每台服务器的是否安装ssh服务 [root@master ~]# rpm -qa | grep ssh
openssh-5.3p1-84.1.el6.x86_64
libssh2-1.4.2-1.el6.x86_64
openssh-askpass-5.3p1-84.1.el6.x86_64
openssh-clients-5.3p1-84.1.el6.x86_64
openssh-server-5.3p1-84.1.el6.x86_64
(2) 如果出现openssh相关服务,说明已安装,反之未安装
#可以通过yum或者rpm安装进行安装
[root@master ~]# yum install ssh
#安装好之后开启ssh服务,ssh服务一般又叫做sshd
[root@master ~]# service sshd start
#或者使用/etc/init.d/sshd start
[root@master ~]# /etc/init.d/sshd start
(3) 启动SSH服务
#启动成功后通过ssh远程访问登陆自己
[root@master ~]# ssh localhost
root@localhost's password:
Last login: Fri Jun 26 16:48:43 2015 from 192.168.1.102
[root@master ~]#
#退出当前登陆
[root@master ~]# exit
logout
Connection to localhost closed.
[root@master ~]#
(3) 修改sshd_config配置文件
#查看或者编辑ssh服务配置文件
[root@master ~]# vi /etc/ssh/sshd_config
###########################################################
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
###########################################################
#重启sshd服务
[root@master ~]# service sshd restart
(4) 配置免密码登陆公钥私钥,并进行回环测试(以下步骤在3台服务器上均操作)
#切换hadoop用户
su hadoop
#进入hadoop home目录
[hadoop@master ~]cd ~
#产生公私钥
[hadoop@master ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
#进入.ssh目录
[hadoop@master ~] cd .ssh
#查看该目录下产生的公钥、私钥文件,id_dsa.pub为公钥,id_dsa为私钥
[hadoop@master ~] ll
#将公钥文件复制成authorized_keys文件,即sshd_config中需要去掉注释中的文件名
[hadoop@master .ssh]$ cat id_dsa.pub >> authorized_keys
#单机回环ssh免密码登陆测试,注意测试需要输入密码,原因是无authorized_keys的写权限
[hadoop@master .ssh]$ ssh localhost
#修改authorized_keys文件权限为600
[hadoop@master.ssh]$ chmod 600 authorized_keys
#再次单机回环ssh免密码登陆测试,成功
[hadoop@master .ssh]$ ssh localhost
(4)让主节点(master)能够通过SSH免密码登陆两个节点(slave),为了实现这个功能,两个slave节点的公钥文件中必须包含主节点(master)的公钥信息
#注意:以下操作需要在slave1、slave2上都进行
#hadoop用户登录,并进入hadoop的.ssh目录
#将master上的公钥id_dsa.pub拷贝到slave1、slave2,改名为master_dsa.pub
[hadoop@slave1 .ssh] scp hadoop@master:~/.ssh/id_dsa.pub ./master_dsa.pub
#将master_dsa.pub文件包含的公钥信息追加到slave1的authorized_keys
hadoop@slave1 .ssh]$ cat master_dsa.pub >> authorized_keys
#修改authorized_keys文件权限为600
[hadoop@slave1 .ssh]$ chmod 600 authorized_keys
#切换root用户
[hadoop@slave1 .ssh]$ su root
#重启sshd服务,此时需要切换账号为root账号
[root@slave1 .ssh]# service sshd restart
#在master服务器上,利用hadoop用户无目录登录进行测试
[root@master ~]# su hadoop
[hadoop@master ~]$ ssh slave1
Last login: Thu Mar 30 12:15:19 2017 from master
Last login: Thu Mar 30 12:15:19 2017 from master
[hadoop@slave1 ~]$
#显示[hadoop@slave1 ~]$ 代表登录slave1成功
#退出ssh登录
[hadoop@slave1 ~]$ exit
[hadoop@master ~]$