当我们在用户的主目录使用如下命令:
cd (进入个人主目录,默认为/home/hadoop)
ssh-keygen -t rsa -P '' (注:最后是二个单引号)
表示在用户的主目录创建ssh登陆,即:以rsa算法,生成公钥、私钥对,-P ''表示空密码。该命令运行完后,会在个人主目录下生成.ssh目录,里面会有二个文件id_rsa(私钥) ,id_rsa.pub(公钥),
.ssh文件夹下面的文件如图所示:
一般当我们希望从别的地方登陆到本主机的时候,特别是在做分布式集群的时候,希望主机之间ssh互相通信,需要授权,此时就多出了个授权文件,截图如下:
其中authorized_keys就存储各个机器的公钥。
这里面要明确known_hosts和authorized_keys两个文件的区别:
known_hosts文件是存放已经主机的公钥,也就是说当你使用别的主机连接本台机器的时候,例如hadoop@slave01$ ssh master的时候,如果第一次连接,known_hosts为空,此时会发生warning信息,提醒是否连接,确定连接才会让你输入密码连接,然后便会把master的公钥添加到known_hosts中,下次只需要直接输入master密码连接即可。
而authorized_keys文件是实现真正无密码连接,即为授权文件,当把master的公钥添加到authorized_keys文件中后,下次连接直接输入ssh master即可,不需要再次输入密码