?问题 :
我有 台主机,如果两两都要建立ssh免密登录(和自己也建立),那么每台主机都要和其他 台主机建立ssh免密登录,即要输入 次密码。
?目标:
减少操作次数到 次。(局限:每台主机的用户名需一致)
?思路:
1、设 台主机中的一台为 ,先建立 对其他主机的信任,再建立其他主机对 的信任。此时 已与所有主机建立互信,并生成了两个文件authorized_keys(表示可以免密登录到本机上的主机有哪些)和?know_hosts(表示可以免密登录到哪些主机上)。
2、将上述两个文件分别拷贝到每台主机的/.ssh/目录下即可。
说明:?
? ? ? ? 我有四台主机,主机名称分别是hadoop102、hadoop103、hadoop104、hadoop105。已设置好ip和主机名映射。

?具体步骤:
1、对于每台主机做如下操作
进入用户主目录,删除.ssh文件夹,创建.ssh文件夹。进入.ssh文件夹
cd ~
rm -rf .ssh/
mkdir .ssh/
cd .ssh/
生成密钥,显示信息后按三次回车。
ssh-keygen -t rsa
?查看是否已生成公钥和私钥(如图)
ls -l
?
?2、选择其中一台主机作为主机 (我选hadoop102),建立其他主机免密登录主机A对于每台主机做如下操作
输入
ssh-copy-id hadoop102
提示
Are you sure you want to continue connecting (yes/no)?
输入yes,回车
提示输入hadoop102的密码,我们输入一下hadoop102的密码,回车
root@hadoop102's password:
?本步结果如图所示:

来到主机A(hadoop102)
输入
ls -l
?看到多出了一个文件authorized_keys

?输入
cat authorized_keys
看到

?表示刚才的步骤成功了。
3、建立主机A免密登录其他主机的通信
和上面步骤类似这次是只在主机A上操作。
输入
ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104
ssh-copy-id hadoop105

?完成之后输入
ls -l
看到know_hosts(表示可以免密登录到哪些主机上)

?4、将这两个文件复制到其他主机上的相同位置
使用scp命令(如果没有的话先安装?yum install -y openssh-clients.x86_64)
随后就是拷贝过去(此时已经免密了嘻嘻)
scp known_hosts hadoop103:~/.ssh/
scp authorized_keys hadoop103:~/.ssh/
效果如下图?

可以看到hadoop103中已经拷贝好

?同样的方法拷贝到hadoop104、hadoop105即可。
最后我们验证一下hadoop104能否免密登录hadoop105

?Nice!完成了。
|