CentOs7.3 hadoop ssh 免密登录
环境
三台虚拟机(IP):
- 192.168.252.121
- 192.168.252.122
- 192.168.252.123
1.修改主机名
修改三台主机名,以此类推,node1,node3,node3
命令格式
1 | hostnamectl set-hostname <hostname> |
1 | sudo hostnamectl set-hostname node1 |
剩下的虚拟机依次修改hostnamectl set-hostname[1-3]
重启操作系统
1 | $ reboot |
2.修改映射关系
1.在 node1 的 /etc/hosts
文件下添加如下内容
1 | su hadoop |
2.查看修改后的/etc/hosts
文件内容
1 | $ cat /etc/hosts |
2.将集群node1 上的文件hosts
文件 通过 scp
命令复制发送到集群的每一个节点
1 | for a in {1..3} ; do sudo scp /etc/hosts hadoop@node$a:/etc/hosts ; done |
3.检查是否集群每一个节点的 hosts
文件都已经修改过来了
1 | for a in {1..3} ; do sudo ssh hadoop@node$a cat /etc/hosts ; done |
3.启动 ssh 无密登录
1.在集群node1的 /etc/ssh/sshd_config
文件去掉以下选项的注释
1 | sudo vi /etc/ssh/sshd_config |
1 | RSAAuthentication yes #开启私钥验证 |
2.将集群node1 修改后的 /etc/ssh/sshd_config
通过 scp
命令复制发送到集群的每一个节点
1 | for a in {1..3} ; do sudo scp /etc/ssh/sshd_config hadoop@node$a:/etc/ssh/sshd_config ; done |
4.生成公钥、私钥
1.在集群的每一个节点节点输入命令 ssh-keygen -t rsa -P ''
,生成 key,一律回车
1 | ssh-keygen -t rsa -P '' |
1 | Generating public/private rsa key pair. |
2.在集群的node1 节点输入命令
将集群每一个节点的公钥id_rsa.pub
放入到自己的认证文件中authorized_keys
;
1 | for a in {1..3}; do sudo ssh hadoop@node$a cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys; done |
3.在集群的node1 节点输入命令
将自己的认证文件 authorized_keys
通过
scp 命令复制发送到每一个节点上去:
/home/hadoop/.ssh/authorized_keys`
1 | for a in {1..3}; do sudo scp /home/hadoop/.ssh/authorized_keys hadoop@node$a:/home/hadoop/.ssh/authorized_keys ; done |
4.非ROOT 用户需赋权限
1 | chmod 700 /home/hadoop/.ssh/ |
5.在集群的每一个节点节点输入命令
接重启ssh服务
1 | sudo systemctl restart sshd.service |
6.验证 ssh 无密登录
开一个其他窗口测试下能否免密登陆
例如:在node3
1 | ssh hadoop@node2 |
exit
退出
1 | [hadoop@node1 ~]# exit |
注意:开新的其他窗口测试下能否免密登陆,把当前窗口都关了