我们在上期时候创建了两个虚拟机——hadoop1和hadoop2,这次继续用这两台虚拟机讲解双向免密登陆
一、免密登陆原理
假设我们要在hadoop1虚拟机中,通过ssh
指令登陆hadoop2的虚拟机,这时候需要密码才能登陆
要做到免密登陆,就是在hadoop1虚拟机通过指令生成.ssh
文件夹,生成密钥(包括私钥和公钥),将公钥通过scp
指令远程拷贝到hadoop2虚拟机的.ssh
文件夹中(拷贝前和hadoop1一样先生成.ssh文件夹)
拷贝之后,将hadoop1的公钥通过cat
指令写到到authorized_keys
文件中,即可完成免密登陆。hadoop2虚拟机要免密登陆hadoop1同理
下面具体来看下如何操作
二、双向免密登陆操作过程
首先,打开hadoop1虚拟机,输入指令ssh-keygen -t rsa
,作用是生成.ssh
文件夹,同时生成密钥到文件夹中
连续按下三下回车键即可(即默认设置),如有要修改的自行修改就好
同理,打开hadoop2虚拟机,输入一样的指令ssh-keygen -t rsa
,连续按三下回车键默认设置
回到hadoop1虚拟机,输入指令cd /root/.ssh
跳转到.ssh
文件夹下,再输入指令ls
查看当前目录
可以看到生成两个密钥,其中id_rsa
是私钥,id_rsa.pub
是公钥,我们需要将id_rsa.pub
公钥拷贝到hadoop2的虚拟机中
拷贝之前先重新命名,方便和其他虚拟机的公钥区分,避免把hadoop2的公钥给覆盖掉
输入指令mv id_rsa.pub id_rsa_1.pub
可以看到,文件名已经成功修改,接着就是远程拷贝到hadoop2虚拟机中
输入指令scp id_rsa_1.pub root@hadoop2:/root/.ssh/
,首次拷贝需要输入yes和对方虚拟机的密码
这时候haoop1的已经拷贝成功,我们打开hadoop2虚拟机,在上面的时候就已经给hadoop2生成了.ssh
文件夹和密钥,接着只需要
输入指令cd /root/.ssh
跳转到.ssh
文件夹
输入指令mv id_rsa.pub id_rsa_2.pub
修改公钥文件名
输入指令scp id_rsa_2.pub root@hadoop1:/root/.ssh/
拷贝到hadoop1虚拟机的.ssh
文件夹中
执行结束之后输入ls
可以看到在两台虚拟机中都各自有对方的公钥文件
| 文件名 | 介绍 |
| — | — |
| id_rsa | 私钥文件 |
| id_rsa_1.pub | hadoop1的公钥文件 |