很多人要设置互信,也就是免密登录,但为什么要设置呢?
因为互信可以让你的机器之间不需要输入密码就可以互相登录进去,这样就方便了机器之间的操作,也是大数据中hadoop集群搭建所必须的一个步骤。
当然,免密登录只是搭建hadoop集群前的所需步骤之一,配置静态ip也是本地搭建hadoop集群学习环境的一个步骤。
在设置互信免密登录之前,需要修改主机hostname(虚拟机安装的centos7),以及机器之间的映射关系,假设这两项你已经设置好了。
环境说明
vmware workstation
centos7:3台
所有命令均在root账户下执行
开启ssh无密码登录
1.在master节点的:/etc/ssh/sshd_config文件中去掉注释
vim /etc/ssh/sshd_config
RSAAuthentication yes #开启私钥验证
PubkeyAuthentication yes #开启公钥验证
2.通过scp命令将sshd_config文件远程复制到其他节点
scp /etc/ssh/sshd_config root@slave1:/etc/ssh/
scp /etc/ssh/sshd_config root@slave2:/etc/ssh/
生成公、私钥
1.在每个节点执行(执行过程中一律回车):
ssh-keygen -t rsa -P ''
结果如下:
[root@master ~]# ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
22:42:2d:15:39:cc:f6:4a:9c:da:57:5b:55:b8:18:5d root@master
The key's randomart image is:
+--[ RSA 2048]----+
| ooo . +E |
| o* . + |
| oo.+ + . |
| . .+ . . o . |
| .+....So |
| ..o.... |
| . |
+-----------------+
2.在master节点执行:
cat id_rsa.pub >> authorized_keys
3.查看其他节点的id_rsa.pub文件,将文件中的内容复制到master节点的authorized_keys(自己创建)中,保存退出。
4.分发authorized_keys文件到其他节点:
scp authorized_keys root@slave1:~/.ssh/
scp authorized_keys root@slave2:~/.ssh/
5.重启sshd服务(每个节点都需要重启):
systemctl restart sshd.service
6.验证ssh免密登录是否成功:
[root@master]#
[root@master]# ssh slave1
Last login: Tue Jun 26 11:35:53 2018 from master
[root@slave1 ~]#
第一次登录的时候,会提示你输入密码,选择yes/no的时候,yes
Tips:当使用以上方式达不到免密登录,请使用ssh-copy-id命令
语法格式:
ssh-copy-id [-i [identity_file]] user@machine
选项
-i:指定公钥文件
实例1:不指定公钥文件
[root@master]# ssh-copy-id root@slave1
[root@master]# ssh-copy-id root@slave2
实例2:指定公钥文件
[root@master]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave1
[root@master]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@slave2
如果提示:
[root@master]# ssh-copy-id:command not found
执行以下命令:
[root@master]# yum -y install openssh-clients
文章评论