一,ansible的authorized_key模块的用途

用来配置密钥实现免密登录:

ansible所在的主控机生成密钥后,如何把公钥上传到受控端?

当然可以用ssh-copy-id命令逐台手动处理,如果受控端机器数量不多当然没问题,

但如果机器数量较多,有几十几百台时,手动处理的效率就成为问题。

authorized_key模块就用来把公钥上传到各台服务器实现免密登录

二,authorized_key的使用例子:

1,在hosts中增加一个段:

[test]
192.168.0.87:22 ansible_ssh_user=root ansible_ssh_pass="rootpass"
192.168.0.88:22 ansible_ssh_user=root ansible_ssh_pass="rootpass"
192.168.0.89:22 ansible_ssh_user=root ansible_ssh_pass="rootpass"

批量上传公钥

[root@centos8 ~]# ansible ils -m authorized_key -a "user=root state=present key='{{ lookup('file', '/home/liuhongdi/.ssh/id_rsa.pub') }}'"

出现报错:

192.168.0.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=root state=present key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}'"
192.168.0.87 | CHANGED => {

成功了

手动测试一下:看ssh到目标服务器是否还需要输入密码?

[root@centos8 ~]# ssh -p 22 root@192.168.0.87

三,查看ansible版本

[root@centos8 liuhongdi]# ansible --version
ansible 2.9.5

ansible用authorized_key模块批量推送密钥到受控主机实现免密登录的更多相关文章

  1. ansible用authorized_key模块批量推送密钥到受控主机(免密登录)(ansible2.9.5)

    一,ansible的authorized_key模块的用途 用来配置密钥实现免密登录: ansible所在的主控机生成密钥后,如何把公钥上传到受控端? 当然可以用ssh-copy-id命令逐台手动处理 ...

  2. linux 生成密钥和公钥,实现免密登录

    1. 在相应的用户根目录下生成密钥公钥,输入如下命令: ssh-keygen -t rsa 2. 直接三次回车:会生成两个文件:id_rsa / id_rsa.pub,分别为密钥和公钥 3.  打开公 ...

  3. centos7生成密钥及集群之间免密登录

    1.在本地生成密钥 命令:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 2.进入.ssh文件夹,创建保存密钥的文件 命令:touch authorized_keys ...

  4. centos平台scp通过密钥远程复制文件(免密登录)

    一,说明:两台机器的平台和ip 1,a服务器: centos8:ip:121.122.123.47 版本 [root@yjweb ~]# cat /etc/redhat-release CentOS ...

  5. 自动化运维工具ansible学习+使用ansible批量推送公钥到远程主机

    目录: 一.ansible简介 1.1.ansible是什么 1.2.ansible如何工作 1.3.ansible优缺点 1.4.ansible安装方式 1.5.ansible文件简单介绍 1.6. ...

  6. Shell脚本实现SSH免密登录及批量配置管理

    本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...

  7. 批量实现ssh免密登录

    本节索引 场景分析 ssh免密登录 pssh工具批量管理 SHELL自动化脚本 本篇总结 场景分析 作为一个运维工程师,不是每个人工作的环境都想阿里.腾讯那样,动不动就上亿的PV量,上万台服务器.我们 ...

  8. 【经验】ansible 批量推送公钥

    1.使用 ssh-keygen -t rsa生成密钥对 ssh-keygen -t rsa 2.推送单个公钥到远程机器 格式: ssh-copy-id -i ~/.ssh/id_rsa.pub use ...

  9. ansible 批量推送ssh秘钥

    ansible 批量推送ssh秘钥 参考:http://docs.ansible.com/ansible/authorized_key_module.html # vi /etc/ansible/ho ...

  10. shell脚本批量推送公钥

    目的:新建管理机,为了实现批量管理主机,设置密匙登陆 原理:.通过密钥登陆,可以不用密码 操作过程: 1.生成密匙 ssh-keygen 2.查看密匙 ls   ~/.ssh/ 有私匙id_rsa公匙 ...

随机推荐

  1. Ubuntu18.04 右上角网络连接消失问题记录

    问题记录 因为一块板子要访问远程桌面,需要联网才行,然后发现桌面右上角的网络连接标志不见了,而且无论用usb共享网路,或者是无线网卡,都连不上网. 首先想是不是硬件的问题,给系统重新装了一个ubunt ...

  2. 如何保证RabbitMQ的消息按照顺序执行???

    可以采用单线程的消费保证消息的顺序性.对消息进行编号,1,2,3,4--消费时按照编号的顺序去消费消息.这样就可以保证消息 按照一定顺序执行.

  3. 学习笔记||使用Vue时踩过的坑2.0

    6.Vue指令之v-show篇 v-show的功能,其功能类似于v-if 1.判断某个元素是否显示或隐藏 <el-button v-show="list.power == 1" ...

  4. CSRF跨站点请求伪造(Cross Site Request Forgery)攻击

    CSRF跨站点请求伪造(Cross Site Request Forgery)和XSS攻击一样,有巨大的危害性,就是攻击者盗用了用户的身份,以用户的身份发送恶意请求,但是对服务器来说这个请求是合理的, ...

  5. .gitignore忽略文件无效的解决办法

    .gitignore中已经标明忽略的文件目录下的文件,git push的时候还会出现在push的目录中,原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中, ...

  6. Day16-异常

    异常机制 一.Error和Exception 1.什么是异常 2.异常体系结构 3.Error和Exception Error Exception 二.捕获和抛出异常 1.异常处理机制 抛出异常 捕获 ...

  7. PostgreSQL 存储过程 通过设定条件,返回指定的数据表记录

    PL/pgSQL是 PostgreSQL 数据库系统的一个可装载的过程语言. PL/pgSQL的设计目标是创建一种可装载的过程语言,可以可用于创建函数和触发器过程, 在SQL语言中添加控制结构功能, ...

  8. SQL servr——基础篇之DML增删改查

    DML:数据操作语言 用于添加.更新.删除和查询数据库中的语言 添加--insert语句 向数据表中插入新的行(记录)可多行可一行 语法:insert  [into]  表名  [(column1,. ...

  9. springboot项目打成jar包,启动指定外部的yml文件

    java -jar xxx.jar --spring.config.local=application.yml

  10. oracle转义单引号

    --笔记开始: 每次从表中取数据,然后都要在excel中添加单引号,再粘到查询语句中进行查询比较麻烦. 所以能在查出的结果直接加上单引号是很省时间的 . 这里用到转义. tablename: ep: ...