Ansible实现免密登录的授权与撤销

先定义下涉及的三个对象:
源机器:需要连接到目标机器的机器
目标机器:源机器需要连接的机器
ansible主机:操作管理目标机器,相当于代理机器

实现原理就是源机器本地生成ssh的私钥和公钥,将公钥发送给ansible主机,ansible主机再推送到目标机器,这样源机器就可以根据私钥去连接到目标机器,撤销就是ansible主机根据公钥从目标机器撤销对应的公钥,这样源机器与目标机器就失去了连接

ansible脚本

使用playbook接收命令传递的参数,实现对指定目标机器管理授权

- hosts: "{{host}}"
  user: zhj
  tasks:
   - name: push_ssh_key
     authorized_key: user=zhj key="{{ lookup('file', '/etc/ansible/rsa_pubs/ssh-key-id-rsa-pubs/{{key_name}}') }}"
     when: tag == "0"
   - name: remove_ssh_key
     authorized_key: user=zhj key="{{ lookup('file','/etc/ansible/rsa_pubs/ssh-key-id-rsa-pubs/{{key_name}}') }}" state=absent
     when: tag == "1"
     tags:
       - sshkey

主要参数详解

hosts:目标机器ip
user:ansible主机连接目标机器的用户
tasks:playbook的子任务
- name: 子任务名称
authorized_key:user:目标主机授权的用户 key:使用lookup函数读取公钥文件,key_name参数由命令传递进来 state=absent:撤销公钥,没有此参数则是添加公钥
when:条件判断,根据命令传递的tag参数判断是否执行此子任务

授权命令

添加授权

ansible-playbook playbook/push-ssh.yml -e "host=192.168.3.29 key_name=huobojun.pub tag=0"

撤销授权

ansible-playbook playbook/push-ssh.yml -e "host=192.168.3.29 key_name=huobojun.pub tag=1"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值