Ansible 实现批量建立互信

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

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

生成密钥对

1
ssh-keygen -t rsa

一路回车即可。

建立互信

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

1
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:

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

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

执行:

1
2
3
4
5
6
7
8
9
10
11
12
# 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 登录,若无需再输入密码,则证明互信建立成功!


hoxis wechat
一个脱离了高级趣味的程序员,关注回复1024有惊喜~
赞赏一杯咖啡
  • 本文作者: hoxis | 微信公众号【不正经程序员】
  • 本文链接: https://hoxis.github.io/ansible-ssh-copy.html
  • 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
  • 并保留本声明和上方二维码。感谢您的阅读和支持!
0%