一、密钥认证-集群批量管理
1.1 概述
作用:
- 使管理更加轻松,两个节点通过密钥形式进行访问,不需要输入密码(单向)
应用场景:
- 一些服务在使用前要求我们做秘钥认证.
- 手动写批量管理脚本.
别名:
1.2 密钥认证的原理
图示如下:
什么是密钥对?
公钥: public key 一般以.pub结尾.
私钥: private key 没有特殊的结尾
1.3 配置密钥认证
环境准备
角色 |
主机名 |
ip |
管理机 |
m01 |
10.0.0.61 |
被管理节点 |
nfs01 |
10.0.0.31 |
被管理节点 |
web01 |
10.0.0.7 |
被管理节点 |
backup |
10.0.0.41 |
1.3.1 基本检查
确保对向机器IP和端口正常
1.3.2 创建密钥对
创建的时候需要按交互提示输入信息
1.3.3 分发公钥
需要按交互提示输入yes / no,并输入对向主机密码
yes后会将信息保存到如下文件中:
[root@mn01[ ~]#ls ~/.ssh/known_hosts
/root/.ssh/known_hosts
1.3.4 连接测试
温馨提示:
ssh-copy-id后公钥被存放在对方服务器的用户家目录下面的.ssh下面.
名字叫:authorized_keys,如果不想被密钥认证了,把该文件删了即可
1.4 自动化创建与分发密钥
结合2.3节的创建和分发流程,自动化创建和分发主要面临以下问题:
- 创建秘钥对需要交互式输入【1.4.1解决】
- 分发公钥的时候需要交互式输入:yes/no 【1.4.2解决】
- 分发公钥的时候需要输入密码 【1.4.2解决】
1.4.1 自动化创建
使用选项指定参数,跳过交互式输入环节
1.4.2 自动化分化密钥
解决输入密码问题,需要使用到sshpass工具,其基本使用如下:
解决交互书yes / no的问题,需要使用到ssh-copy-id的选项
-oStrictHostKeyChecking=no
1.4.3 自动化创建与分发脚本
创建和分发密钥脚本/server/scripts/creatkey.sh
分发脚本测试
检查脚本测试/server/scripts/check.sh
脚本测试