一、基本原理
1. 虚拟机101在本机生成一对密钥,公钥(加密)和私钥(解密)
2.虚拟机101将公钥拷贝给虚拟机102,在102中有一个名为authorized_keys的文件,这个文件专门存放授权远程登录的公钥,所以101的公钥以及101的用户名、IP等信息就被存放于此
3.虚拟机101向虚拟机102发送连接请求
4.虚拟机102收到请求,于是在authorized_keys文件中进行匹配,如果匹配信息成功,则会生成一个随机的字符串,失败则要求对方输入密码
5.匹配成功,102生成一个随机的字符串,并以101的公钥加密后发送给101
6.101接收后,以自己生成的私钥解密,解密后将解密后的字符串发送给102
7.102接收101解密后的字符串,并与步骤4时生成的字符串进行比对,比对成功后,则允许免密登录
二、实现步骤(三台虚拟机操作一致)
1.生成密钥
命令:ssh-keygen -t rsa
生成的密钥文件默认会保存在用户的家目录下的.ssh文件夹中,私钥为id_rsa,公钥为id_rsa.pub
2.把公钥发给三台虚拟机
除了102和103之外,自己请求自己的时候也是需要再次输入密码的,所以也给自己发送一份公钥
命令:ssh-copy-id hadoop@hadoop10?
需要输入对方的密码
命令执行成功后,另外一台主机会自动生成.ssh/authorized_keys
文件
3.测试
每台主机都去尝试登录三台主机
命令:ssh hadoop@hadoop101