一开始进行centos7下实现ssh免密登录的时候,入了很大的坑,用的是几台虚拟机之间互相scp的方式,不过由于不清楚原理,而且总是scp出错,绕了很大的弯都没有成功。
下面是一种比较便捷的方式,不用手动在几个虚拟机之间scp他们的公钥文件,之间使用几条命令,它自己进行操作。(我这里实现的是各个节点之间root用户之间的ssh免密登录)
1、在node01上生产一对钥匙(公钥和私钥)
首先在root用户下,执行ssh-keygen -t rsa,一路回车,接着会产生在/root目录下会产生.ssh目录
查看 .ssh 目录,会发现它下面生成了两个 id_rsa , id_rsa.pub文件
known_hosts文件是通过ssh node02(就是通过ssh登录其他主机)产生的,而不是通过执行ssh-keygen -t rsa命令产生,请不要弄错。
2、在node01上将公钥(id_rsa.pub)拷贝到其它节点,包括本机
ssh-copy-id node01
ssh-copy-id node02
ssh-copy-id node03
3、在node02节点上和node03节点都要重复上述1、2操作,分别产生各自的一对钥匙,并拷贝到其它节点(包括本机)
node02节点上:
node03节点上: