ansible用authorized_key模块批量推送密钥到受控主机(免密登录)(ansible2.9.5)
一,ansible的authorized_key模块的用途
用来配置密钥实现免密登录:
ansible所在的主控机生成密钥后,如何把公钥上传到受控端?
当然可以用ssh-copy-id命令逐台手动处理,如果受控端机器数量不多当然没问题,
但如果机器数量较多,有几十几百台时,手动处理的效率就成为问题。
authorized_key模块就用来把公钥上传到各台服务器实现免密登录
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,authorized_key的使用例子:
1,在hosts中增加一个段:
[ils]
121.122.123.87:12888 ansible_ssh_user=webop ansible_ssh_pass="weboppass"
121.122.123.88:12888 ansible_ssh_user=webop ansible_ssh_pass="weboppass"
121.122.123.89:12888 ansible_ssh_user=webop ansible_ssh_pass="weboppass"
批量上传公钥
[root@centos8 ~]# ansible ils -m authorized_key -a "user=webop state=present key='{{ lookup('file', '/home/liuhongdi/.ssh/id_rsa.pub') }}'"
出现报错:
121.122.123.87 | FAILED! => {
"msg": "Using a SSH password instead of a key is not possible because Host Key checking is enabled and sshpass does not support this.
Please add this host's fingerprint to your known_hosts file to manage this host."
}
问题的原因:
ssh第一次连接的时候一般会提示fingerprint key字符串,需要输入yes 进行确认.
确认后会把key字符串加入到 ~/.ssh/known_hosts 文件中
解决办法:
修改ansible的配置文件:
[root@centos8 ~]# vi /etc/ansible/ansible.cfg
把这一行的注释去掉:
host_key_checking = False
说明:这一行的作用:
# uncomment this to disable SSH key host checking
用来禁止ssh的指纹key字串检查
2,再次上传公钥到服务器:
[root@centos8 ~]# ansible ils -m authorized_key -a "user=webop state=present key='{{ lookup('file', '/home/liuhongdi/.ssh/id_rsa.pub') }}'"
121.122.123.87 | CHANGED => {
成功了
手动测试一下:看ssh到目标服务器是否还需要输入密码?
[root@centos8 ~]# ssh -p 12888 webop@121.122.123.87
三,查看ansible版本
[root@centos8 liuhongdi]# ansible --version
ansible 2.9.5
ansible用authorized_key模块批量推送密钥到受控主机(免密登录)(ansible2.9.5)的更多相关文章
- 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机
目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 1.3.ansible优缺点 1.4.ansible安装方式 1.5.ansible文件简单介绍 1.6. ...
- 【经验】ansible 批量推送公钥
1.使用 ssh-keygen -t rsa生成密钥对 ssh-keygen -t rsa 2.推送单个公钥到远程机器 格式: ssh-copy-id -i ~/.ssh/id_rsa.pub use ...
- ansible 批量推送ssh秘钥
ansible 批量推送ssh秘钥 参考:http://docs.ansible.com/ansible/authorized_key_module.html # vi /etc/ansible/ho ...
- shell脚本批量推送公钥
目的:新建管理机,为了实现批量管理主机,设置密匙登陆 原理:.通过密钥登陆,可以不用密码 操作过程: 1.生成密匙 ssh-keygen 2.查看密匙 ls ~/.ssh/ 有私匙id_rsa公匙 ...
- 基于Codeigniter框架实现的APNS批量推送—叮咚,查水表
最近兼职公司已经众筹成功的无线门铃的消息推送出现了问题,导致有些用户接收不到推送的消息,真是吓死宝宝了,毕竟自己一手包办的后台服务,影响公司信誉是多么的尴尬,容我简单介绍一下我们的需求:公司开发的是一 ...
- SEO教程:快速增加360搜索引擎收录,360自动推送批量推送版
上次改编了一下百度的JS推送代码,实现了批量推送 传送门>>>百度链接提交-js代码推送批量推送版 这次我们来研究360js自动推送代码. <script> (funct ...
- 百度链接提交-js代码推送批量推送版
1原百度JS链接推送代码 首先我们来看一下原百度JS链接推送代码是这*样的 用百度自己的话讲:JS链接推送代码以网页为最小对象,服务于全平台多终端,PC站和移动站均可使用.安装代码的页面在任意平台(浏 ...
- Shell脚本实现SSH免密登录及批量配置管理
本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...
- 批量实现ssh免密登录
本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...
随机推荐
- 感知生命周期的数据 -- LiveData
感知生命周期的数据 -- LiveData 零. 前言 上篇文章<万物基于Lifecycle> 介绍了整个Lifecycle体系的基石,今天这篇文章咱们来看看Jetpack给我们带来的活着 ...
- 起redis服务时报错Creating Server TCP listening socket *:6379: bind: No such file or directory
- springboot之零碎小知识
1.springboot启动类加载yml配置项 主要是如下方法,读取了yml的配置项,赋值为类成员属性 @Autowired public void setEnvironment(Environmen ...
- Netty之ChannelOption的各种参数
ChannelOption.SO_BACKLOG, 1024 BACKLOG用于构造服务端套接字ServerSocket对象,标识当服务器请求处理线程全满时,用于临时存放已完成三次握手的请求的队列的最 ...
- zookeeper(5) 客户端
zookeeper客户端主要负责与用户进行交互,将命令发送到服务器,接收服务器的响应,反馈给用户.主要分为一下三层: 用户命令处理层 用户命令处理层的功能是读取用户输入的命令,解析用户命令和输入参数, ...
- 结合源码谈谈ThreadLocal!
目录 ThreadLocal的作用 ThreadLocal 1.对象初始化 2.获取变量 3.设置变量 4.移除变量 ThreadLocalMap 1.Entry 2.初始化 3.获取Entry 4. ...
- Java12新特性
switch表达式(预览) 传统switch的缺点 匹配是自上而下的,如果忘记写break, 后面的case语句不论匹配与否都会执行; 所有的case语句共用一个块范围,在不同的case语句定义的变量 ...
- 【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?
写在前面 今天,一名读者反馈说:自己出去面试,被面试官一顿虐啊!为什么呢?因为这名读者面试的是某大厂的研发工程师,偏技术型的.所以,在面试过程中,面试官比较偏向于问技术型的问题.不过,技术终归还是要服 ...
- Swiper 在IE9 及其他浏览器使用
Swiper 在IE9 及其他浏览器使用 前言 昨天遇到一个问题,swiper 使用版本是3.4.2 除了Ie9浏览器外其他浏览器都正常,IE9 无法轮播,执行控制台报错源码问题.没办法,只能降级兼容 ...
- vue下history模式刷新后404错误解决
官方说明文档: https://router.vuejs.org/zh/g... 一. 实测 Linux 系统 Apache 配置: 更改站点配置文件即可,我这里在 Directory 标签后面添加了 ...