我们在搭建集群环境时会用到很多主机,主机之间需要互相访问,如果每次访问都需要登录就很麻烦,那么如何实现虚拟机之间的免密登录呢?
公钥和私钥
在正式介绍免密登录前我们先来看一组概念:公钥和私钥
现有两台主机,主机A需要给主机B发送消息,这个消息需要加密,那么B主机首先要生成一对公钥和私钥
,然后B主机将自己的公钥发送给A,A用B发送过来的公钥对这个"hello"进行加密,然后给B发送过去,B收到消息后再利用自己的私钥进行解密
实现免密登录
现在在我的电脑上有三台虚拟机node01、node02和node03
1.生成公钥和私钥
首先需要在三台主机上分别生成公钥和私钥,输入下面的命令(记住三台主机都需要执行这个命令)
ssh-keygen -t rsa
提示不用管,一路回车即可,看到下面的页面表示创建成功
2.将公钥复制到其他主机
第二步就需要将自己的公钥复制到其他主机上面
在node01、node02和node03三台主机上面分别执行ssh-copy-id node01
执行完成后执行 scp /root/.ssh/authorized_keys node02:/root/.ssh和scp /root/.ssh/authorized_keys node03:/root/.ssh命令
scp /root/.ssh/authorized_keys node03:/root/.ssh
这个命令是远程拷贝命令,可以将本机上面的文件拷贝到其他主机上面
所有命令执行完成后我们可以在node01用ssh node02命令看是否可以登录node02
可以看到,登录成功。