需求:
实现两台服务器互信免密
简单实现过程:
首先要有三台服务器 假设已经有两台服务器
192.168.107.101
192.168.107.102
执行下面步骤之前的准备工作:
命令 vi /etc/hosts [ 给服务器配置ip地址和主机名别名的映射]
原因:有时客户端想远程登录一台linux主机,但每次登录输入密码后都会等很长一段时间才会进入,这是因为linux主机在返回信息时需要解析ip,
如果在linux主机的hosts文件事先加入客户端的ip地址,这时再从客户端远程登录linux就会变很快。
第一步:生成密钥(包括公钥 id_rsa 和私钥 id_rsa.pub)
命令:ssh-keygen -t rsa
说明:
Enter file in which to save the key (/root/.ssh/id_rsa): 的意思是保存私钥的路径默认为
(/root/.ssh/id_rsa) 确定即可
Enter passphrase (empty for no passphrase): 给私钥加密, 默认为空
Enter same passphrase again: 确定上一步的密码
第二步:保存公钥到authorized_keys
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
可以继续输入命令:cat ~/.ssh/authorized_keys [进行查看公钥是否已经保存到这里]
此时继续输入命令:ssh hadoop101 [就能进行自连接]
说明:
这个authorized_key 文件夹本身是没有的 cat 过去就会有
那为什么要取这个名字 :系统认这个 。(暂时这么解释)
第三步:发送公钥到其他服务器
命令:ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop102
输入命令:ssh hadoop102 [看看能不能连接]
说明:
发送命令:ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop102 的时候 在hadoop102服务器那边也会在家目录生成 .ssh/ authorized_keys
发送ssh hadoop102 请求的时候 会输入hadoop102的密码
后面再执行就不用输了
前三步实现了hadoop101的自连接 和 对 hadoop102的连接
第四步:hadoop102 进行自连接 和对 hadoop101的连接
命令:ssh-keygen -t rsa [生成hadoop102的公钥和私钥]
命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys [保存公钥到authorized_keys,注意这边要用 >> 追加 而不能用 > 覆盖 因为 hadoop102 的authorized_keys 里面 已经有 第三步hadoop101发过来的公钥了 ]
输入命令: ssh hadoop102 [看看能不能自连]
输入命令:ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop101 [发送公钥到hadoop101的authorized_keys ,可以在hadoop101 服务器输入命令:cat ~/.ssh/authorized_keys 查看]
说明:
id_rsa // 私钥文件
id_rsa.pub // 公钥文件
authorized_keys // 存放客户端公钥的文件
known_hosts // 确认过公钥指纹的可信服务器列表的文件
以上几步完成了两个服务器之间的免密互连 多台之间的连接,也是差不多的 ,多台连接的本质还是两台两台连 。连接期间肯定会有很多异常和报错 要看清楚是什么原因 ,登录其他服务器之后 如果还要继续对本服务器操作的话 最好先exit 断开一下 操作比较干净。