ssh原理:https://www.sohu.com/a/327212161_760387
ssh理解:
(1)ssh-keygen -t rsa 后,会生成id_rsa,id_rsa.pub两个文件,前者是私钥,后者是公钥;前者是钥匙,后者是锁。
(2)举例说,你长大了,买了自己的房子,那么肯定需要一把锁来锁住你新屋子的门,这把锁你选择了ssh-keygen -t rsa这个方法去自己造,同时你又造了把钥匙;造完后,你需要把你的锁包装下,让他适配任何门,所以你就把锁包装成了authorized_keys,锁芯是不便的,但是外表变了;你就拿着包装后的锁authorized_keys去锁你的新家了。这样以后你想进去你新家的时候你就得拿着你的钥匙去开锁了;
(3)类比(2),两台主机A和B,你在A有权限登入,但是B没有权限登入;你先从B的主人处,得知了他的账号密码,然后你在A打造了钥匙和锁;之后,你拿着B原来的密码登入了B,然后在B装了个门,并用在A打造的锁,锁住了这个门,之后你在来的时候你就可以用在A打造的钥匙去开门了,不需要之前的密码了,这叫免密,强行解释一波=,=。
(4)加入你把在A打造的锁,放到了C,D,E....等机器上,那么以后你就可以免密登入这些主机了。
(5)但是如果B,C,D,E...也想访问A怎么办,最最最简单的办法是,你把A的这个钥匙id_rsa,包装后的锁authorized_keys,直接发送到所有主机,然后大家的门锁锁芯都一样,就能用一把钥匙去开门啦。
=============================================
1. 各节点用户执行(相同用户,直接ssh ip验证,否者user@ip)
ssh-keygen -t rsa //生成密钥,类型是rsa
2.在第一台机器执行
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 640 ~/.ssh/authorized_keys
3.把authorized_keys发送到第二台机器(ip2)
scp ~/.ssh/authorized_keys ip2:~/.ssh
在执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4.再把authorized_keys发送到第三台机器(ip3)
scp ~/.ssh/authorized_keys ip3:~/.ssh
在执行 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
5.一直到所有机器的id_rsa.pub都添加到authorized_keys里面后,再把authorized_keys重新发送给所有机器,
之后互相执行 ssh [user@]ip 验证
6.完事
后来在网上找到另一种:
A
B
C
B: scp ~ssh/id_rsa.pub A:~/.ssh/id_raa.pub.B
C: scp ~ssh/id_rsa.pub A:~/.ssh/id_raa.pub.C
然后:cat id_raa.pub.* >> authorized_keys
最后分发authorized_keys 到每台机器