首先 在配置 集群时,经常使用scp 命令 复制文件,已达到统一,比如 、/etc/hosts 文件。修改一次,再scp到其他机器
scp 格式 : scp '本机目标文件或文件夹' ‘目标文件夹:比如 root@123.1.2.3:/etc/hosts’
正常情况下,执行上面语句,会要求出入目标机器的 的 @ 符前那个用户名的密码。(如果不知道密码,看一下方案2,还没写)
操作次数多了,就很麻烦。所以产生了ssh免密。
方案0(最简单)
在每台机器运行 ssh-keygen -t rsa
直到得到这个公私钥
然后选择一台机器的公私钥 id-rsa 与 id-rsa.pub, 然后打开复制粘贴到其他 机器的 同样文件
测试: scp /etc/hosts 目标IP:/etc/hosts
成功就表示ssh 免密成功
方案1 (知道目标机器的密码)
# 创建密钥对
[root@master ~]
# ssh-keygen -t rsa (按回车键就可以了);
然后进入到 ssh 文件夹 ([root@master ~]
# cd
~/.ssh)
执行 id_rsa.pub >> ~/.ssh/authorized_keys (就是将id_rsa.pub 内容拼到 authorized_keys这个
信任列表
文件末尾 )
重复在 其他slaves 机器操作上面绿色加粗下划线的 命令, 然后每台机器在.ssh这个文件夹下都会有 id_rsa.pub 这个文件。
将他们全都scp 到master 机器) 每次scp到这里都会覆盖掉之前存在的。
再在master 执行 id_rsa.pub >> ssh/authorized_keys
如此 这个authorized_keys 包含了所有机器ip 的公钥
# 最终 “公钥信任列表”分发到所有节点,各节点将自己公钥也加入到信任列表
scp
authorized_keys ‘其他ip:~/.ssh/authorized_keys ’
ok
可以cat 查看一下,每个机器的列表相同。
测试: scp /etc/hosts 目标IP:/etc/hosts
成功就表示ssh 免密成功。。。