检查每个虚拟机上是否安装了ssh 和 启动了ssh服务
rpm -qa | grep ssh
如图所示表示安装了
如果没有安装请执行下面的代码
yum -y install openssh openssh-server openssh-clients
每个虚拟机上都创建hadoop用户并设置密码 执行如下命令即可
# useradd -m hadoop -G root -s /bin/bash
# passwd
hadoop授予管理员权限(以下的操作都是在Xshell上运行,没有的可以在百度上下载一个)
避免以后在操作时,遇到权限不够的问题,输入命令 visudo
按ESC键盘,输入英文冒号,然后输入92号,按回车健,找到root ALL=(ALL) ALL
输入英文字母“i”,进入插入模式,复制一份粘贴到下一行,把root改为新创建的用户hadoop,然后再次输入ESC,输入英文冒号,输入wq,保存退出
注意:中间用tab键隔开(制表符)
.切换到hadoop用户,输入命令 su hadoop
切换后输入 cd .ssh目录下,如果没有.ssh文件 输入 ssh localhost系统会生成一个如下图
接下来输入cd .ssh进入.ssh 目录下,之后输入命令 ssh-keygen -t rsa
输入 ll 进行查看如下图:
将Master中生成的密钥加入授权(authorized_keys)
cat id_rsa.pub # 查看生成的公钥
cat id_rsa.pub >> authorized_keys # 加入授权
chmod 600 authorized_keys # 修改文件权限,如果不修改文件权限,那么其它用户就能查看该授权
如下图:
.至此hadoop-master可以无密码登陆自己了,测试 ssh localhost 不再提示输入密码,如果不行取请检查少了上面那一步,下图登陆成功,不需要密码。
将hadoop-master的公钥传送到所有的slave上,实现hadoop-master无密码登陆到所有slave上
scp authorized_keys hadoop@hadoop-slave1:~/.ssh/
scp authorized_keys hadoop@hadoop-slave2:~/.ssh/
下图为成功:
在hadoop-slave1,hadoop-slave2虚拟机上登陆hadoop用户,输入下面的命令
cd ~/.ssh chmod 600 authorized_keys 如下图所示
测试hadoop-master ssh登陆hadoop-slave1,hadoop-slave1观察是否需要输入密码,如果不需要则成功,否则失败,请检查以上步骤 ,下图为成功: