因需要搭建hadoop
集群,共有4个节点,因此需要实现各个节点之间的免密码登录。
要实现ssh
的免密码登录,就要求目标主机的authorized_keys
文件中存放该主机的公钥信息。
配置前的准备
- 安装
ssh
服务
yum -y install openssh-server openssh-clients
- 关闭防火墙
# 查看防火墙状态
service iptables status
# 关闭防火墙
service iptables stop
# 禁止开机自启动
chkconfig iptables off
# 查看
chkconfig --list iptables
- 配置
/etc/hosts
文件,在该文件中新增如下映射
192.168.48.201 hadoop201
192.168.48.202 hadoop202
192.168.48.203 hadoop203
192.168.48.204 hadoop204
- 建立一个新的用户,不能使用
root
份
useradd ray
passwd ray
开始设置免密码登录
- 切换到
ray
用户身份,不能再root
身份下进行免密码登录设置
[root@hadoop201 .ssh]$ sudo su - ray
- 在
hadoop201
节点上生成密钥对
# 指定使用rsa算法
[ray@hadoop201 .ssh]$ ssh-keygen -t rsa
结果如下:
- 将
hadoop201
上的公钥分别发送到4个节点(包括自己)
# 将hadoop201生成的公钥发送到hadoop201 ~ hadoop204
[ray@hadoop201 .ssh]$ ssh-copy-id hadoop201
[ray@hadoop201 .ssh]$ ssh-copy-id hadoop202
[ray@hadoop201 .ssh]$ ssh-copy-id hadoop203
[ray@hadoop201 .ssh]$ ssh-copy-id hadoop204
注意,hadoop201
节点自身也需要做设置密码登录,为了方便后续将authorized_keys
文件分发到其他的三个节点。
结果如下:
- 验证
[ray@hadoop201 .ssh]$ ssh hadoop202
[ray@hadoop202 ~]$ logout
Connection to hadoop202 closed.
[ray@hadoop201 .ssh]$
如上所示,hadoop201
免密登录hadoop202
成功
- 将
hadoop201
之外的三个节点的公钥发送到hadoop201
节点上
[ray@hadoop202 .ssh]$ ssh-copy-id hadoop201
[ray@hadoop203 .ssh]$ ssh-copy-id hadoop201
[ray@hadoop204 .ssh]$ ssh-copy-id hadoop201
- 将
hadoop201
节点上的authorized_keys
文件分发到其他三个节点
[ray@hadoop201 .ssh]$ scp ~/.ssh/authorized_keys hadoop202:~/.ssh/authorized_keys
[ray@hadoop201 .ssh]$ scp ~/.ssh/authorized_keys hadoop203:~/.ssh/authorized_keys
[ray@hadoop201 .ssh]$ scp ~/.ssh/authorized_keys hadoop204:~/.ssh/authorized_keys
- 将
hadoop201
节点上的known_hosts
分发到其他的三个节点上
scp ~/.ssh/known_hosts hadoop202:~/.ssh/known_hosts
scp ~/.ssh/known_hosts hadoop203:~/.ssh/known_hosts
scp ~/.ssh/known_hosts hadoop204:~/.ssh/known_hosts
至此,hadoop
集群4个节点间ssh
免密码登录已完成,快尝试下吧。