ansible 批量发送密钥

在Ansible中批量发送密钥,可以使用
authorized_key
模块。以下是批量推送SSH公钥的步骤:
生成SSH密钥对
(如果还没有的话):
ssh-keygen -t rsa
按照提示操作,这将在
~/.ssh
目录下生成
id_rsa
(私钥)和
id_rsa.pub
(公钥)两个文件。
创建或编辑Ansible的Inventory文件
,添加目标主机的信息:
[webservers]
host1 ansible_ssh_user=user
host2 ansible_ssh_user=user
编写Playbook
来使用
authorized_key
模块推送公钥:
“`yaml
hosts: webservers
tasks:
name: Add SSH key
authorized_key:
user: “{{ ansible_ssh_user }}”
state: present
key: “{{ lookup(‘file’, ‘~/.ssh/id_rsa.pub’) }}”
”`
执行Playbook
:
ansible-playbook push_keys.yml
如果需要输入密码,可以加上
-k
参数进行提示输入。
(可选)修改Ansible配置文件
ansible.cfg
来禁用SSH的指纹key检查:
[defaults]
host_key_checking = False
这样做可以避免每次连接都需要确认主机密钥,提高自动化效率。
测试免密登录
:
使用
ssh
命令测试是否可以不需要密码登录到目标主机:
ssh user@host1
确保在执行这些步骤之前,你有足够的权限来对目标主机进行更改,并且目标主机允许通过SSH密钥进行认证。