一、准备工作
- 用客户端工具(ssh client、xshell或者putty)连接到linux服务器。在root用户下输入命令
vi /etc/hosts,用vi编辑hosts文件,如下:
#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.142.124 master
192.168.142.125 slave1
192.168.142.126 slave2
-
输入命令:cd /root/.ssh 进入rsa公钥私钥文件存放的目录,删除目录下的id_rsa,id_rsa.pub文件。
二、在每台机上产生新的rsa公钥私钥文件,并统一拷贝到一个authorized_keys文件中(当前默认拷贝到master服务器上) -
登录master,在.ssh目录下输入命令:
ssh-keygen -t rsa
,三次回车后,该目录下将会产生id_rsa,id_rsa.pub文件。其他主机也使用该方式产生密钥文件。 -
登录master,输入命令:
cat id_rsa.pub >> authorized_keys
,将id_rsa.pub公钥内容拷贝到authorized_keys文件中。 -
登录其他主机,将其他主机的公钥文件内容都拷贝到master主机上的authorized_keys文件中,命令如下:
ssh-copy-id -i master #登录slave1,将公钥拷贝到master的authorized_keys中
ssh-copy-id -i master #登录slave2,将公钥拷贝到master的authorized_keys中
三、授权authorized_keys文件 -
登录master,在.ssh目录下输入命令:
chmod 600 authorized_keys
,效果如下:
[root@hadoop01 .ssh]# ls -al
total 28
drwx------. 2 root root 4096 Oct 24 12:27 .
dr-xr-x—. 22 root root 4096 Oct 24 19:20 …
-rw-------. 1 root root 1975 Oct 24 12:27 authorized_keys
-rw-------. 1 root root 1675 Oct 24 12:23 id_rsa
-rw-r–r--. 1 root root 395 Oct 24 12:23 id_rsa.pub
-rw-r–r--. 1 root root 2020 Oct 24 12:10 known_hosts
四、将授权文件分配到其他主机上 -
登录master, 将授权文件拷贝到slave1、slave2,命令如下:
scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/ #拷贝到slave1上
scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/ #拷贝到slave2上 -
至此,免密码登录已经设定完成,注意第一次ssh登录时需要输入密码,再次访问时即可免密码登录。