在Windows里,使用虚拟机软件Vmware WorkStation搭建三台机器,操作系统Ubuntu16.04,下面是IP和机器名称。
【实验目标】:在这三台机器之间实现免密登录
【搭建准备】
1、三台机器上已建立一个共同的账号:hadoop,口令一致
【设置步骤】
1、在主节点master上设置
1)、$cd ~/.ssh
使用ll命令查看,当前~/.ssh文件夹下是空的
2)、生成一对密钥,本机的密钥,放在.ssh文件夹下
$ ssh-keygen -t rsa
生成过程中,一路回车即可。
3)使用ll命令查看,可看到生成了两个文件id_rsa和id_rsa.pub
4)、让主节点能够免密登录到主节点,把密钥传到授权Keys里
$ cat ./id_rsa.pub >> ./authorized_keys
使用ll查看,在.ssh文件夹下,新生成了authorized_keys
5)、使用ssh 登录主节点,$ssh master ,会询问yes/no,输入yes,如下图,使用logout退出ssh登录到本机
6)、再次登录,则不再提示是否yes/no,直接免密登录到本机
7)、在使用ssh登录主节点以后,在.ssh文件夹里新增了一个文件:known_hosts
8)、把主节点master上生成的公钥id_rsa.pub传到其它两台机器,以实现免密登录其它两台机器
$ scp ~/.ssh/id_rsa.pub [email protected]:/home/hadoop/
其中,[email protected],@前面的hadoop是账号,@后面的slave1是目标机器的机器名称,也可以写成IP地址
/home/hadoop/是传到目标机器上的存储路径
在传的过程中,会询问yes/no,输入yes,会询问目标机器的登录口令,输入指令里@前所用账号的口令
注意:这三台机器的文件路径都是:/home/hadoop/.ssh
home后面的hadoop是作为账号hadoop生成的相应文件夹
从其它机器传过来的密钥,放在.ssh的上一级目录,即:/home/hadoop下,在.ssh里存放的是本机的密钥
更改指令$ scp ~/.ssh/id_rsa.pub [email protected]slave2:/home/hadoop/ 传到另一台机器上
8)、分别在另外两台机器上,以hadoop账号登录,把传过来的公钥钥传到授权Keys里
先切换目录:$cd ~
使用ll查看,发现已经有了从主节点传过来的id_rsa.pub
使用指令把传过来的公钥传入授权Keys里:$cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
再另外一台机器上也进行此项操作
9)、从主节点使用ssh测试是否能免密登录到其它两台机器
输入指令:$ssh slave1
由下图可以看出,已经可以免密登录,输入logout退出
同样,从主节点测试免密登录另一台从节点。
10)、清理两台从节点上由主节点传过来的公钥
cd ~
rm -f id_rsa.pub
11)、如果想让两台从节点也能分别访问另外一台从节点和主节点,则参照上面的步骤,把从节点生成的公钥传到另一台从节点上和主节点上,传到授权Key里
2、
原文地址:https://www.cnblogs.com/SH170706/p/10312117.html