将设我们现在一共有4台虚拟机,分别是master,slave1,slave2,slave3,如何配置可以实现4台虚拟机之间免密连接
1、在所有虚拟机上执行 ssh-****** 指令,这条指令会在本地生成公钥(id_rsa)的私钥(id_rsa.pub)两个文件。执行这条语句过程中,会让你输入这两个文件的地址和一些其他信息,不用输入,使用默认项一路回车下来就好,这样这两个文件会默认生成在/root/.ssh这个目录下
2、在master的/root/.ssh目录(也就是存放刚才那两个秘钥的文件夹)下创建authorized_keys这个文件,这个文件一般默认是没有的,这个是授权文件,所有的虚拟机的公钥都要放到这个文件里面。就是将第一步生成的4个id_rsa.pub里面的内容放到authorized_keys文件里面。
3、将刚才第2步中得到的authorized_keys文件复制到另外三台虚拟机(slave1 slave2 slave3)的相同文件夹下,也就是/root/.ssh这个文件夹下面
4、在master的/root/.ssh目录下,生成known_hosts文件,这个文件是记录你通过ssh连接过的虚拟机的公钥,这个文件我也不知道默认有还是没有,如果没有的话就创建一个就行了。然后在master上分别使用ssh连接4台虚拟机(master,slave1,slave2,slave3),需要输入yes或no的地方直接yes就好,还会要你输入要连接的虚拟机的root密码,输入就好,连接成功之后,master就自动把连接信息写到known_hosts里面,连接之后退出来,再连另外的虚拟机,直到把4个虚拟机都连接一次。
5、将第4步中在master的/root/.ssh下的known_hosts复制到另外三台虚拟机的/root/.ssh下面
6、这个时候基本上就大功告成了,通过ssh ip地址就可以免密连接,如在master(192.168.139.100)上连接slave1(192.168.139.101):ssh 192.168.139.101
7、不使用ip地址,使用别名连接,修改/root/etc/hosts文件,将虚拟机ip和别名对应,如图所示,下面那四排就是我添加的:
这样修改之后,就可以通过ssh slave1这样的方式免密连接