Ansible 实现批量建立互信

本文介绍了如何使用Ansible自动化地批量建立多台机器之间的SSH互信,避免手动使用ssh-copy-id的方法,详细讲解了生成密钥对、创建playbook及执行过程,确保在无需密码的情况下实现安全登录。

什么是 ssh 互信?说白了,就是在目标机器上,预先设置好经过认证的 key 文件,当需要访问目标机器时,目标机器通过 key 文件,对访问者进行自动认证,从而实现互信。

当管理大量机器时,使用 ssh-copy-id 方法一个个建立互信有些费时,那么使用 ansible 是否可以批量建立互信呢?

生成密钥对

ssh-keygen -t rsa

一路回车即可。

建立互信

格式: ssh-copy-id -i ~/.ssh/id_rsa.pub username@[ip,hostname]

ssh-copy-id -i ~/.ssh/id_rsa.pub username@192.168.1.2

根据提示完成操作即完成了互信。

批量建立互信

机器多的情况下,使用 ssh-copy-id 方法有些费时,使用 ansible-playbook 推送 ymal,这里使用到了 authoried_keys 模块,可以参考官方文档:http://docs.ansible.com/authorized_key_module.html

建立如下 playbook:

---
  - hosts: test
    # 互信用户
    user: hoxis
    tasks:
     - name: ssh-copy
       authorized_key: user=hoxis key="{{ lookup('file', '/home/hoxis/.ssh/id_rsa.pub') }}"

默认,已在 Ansible 资产文件中配置待互信机器信息。

执行:

# ansible-playbook pushssh.yaml

PLAY [test] *****************

TASK [Gathering Facts] ******
ok: [client]

TASK [ssh-copy] *************
changed: [client]

PLAY RECAP ******************
client                     : ok=2    changed=1    unreachable=0    failed=0  

执行完毕,若没有报错,则证明互信建立成功。

测试:执行 ssh 登录,若无需再输入密码,则证明互信建立成功!


活动预告:最近帮大家争取了【赠书福利】,有兴趣的扫描下发二维码关注赠书活动信息~

Python 帮我起飞


如果觉得有用,欢迎关注我的微信,一起学习,共同进步,不定期推出赠书活动~

你的关注是对我最大的鼓励!

最近搜集到慕课网视频,视频内容涵盖 Python、Java、PHP、前端、小程序、算法、架构、数据库等等!关注本公众号,后台回复「慕课网」即可获取下载地址。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值