当我的/etc/ssh/sshd_config将AuthorizedKeysFile设置为/etc/ssh/authorized_keys/%u时,如何让 Ansible 填充正确的文件?Ansible 似乎忽略了设置并将密钥放在$HOME/.ssh/authorized_keys
剧本:
---
- hosts: all
vars:
vars_files:
- ../group_vars/ssh_root_authorized_keys.yml
gather_facts: false
tasks:
- name: Set up multiple authorized keys
authorized_key:
user: root
state: present
key: '{{ item.key }}'
with_items: "{{ root_auth_keys }}"
ssh_root_authorized_keys.yml
root_auth_keys:
- name: backup@host
key : "{{ lookup('file', '../group_vars/pubkeys/[email protected]') }}"
- name: nagios@host
key : "{{ lookup('file', '../group_vars/pubkeys/[email protected]') }}"
从文档中:
准备此功能有几个步骤。首先,获取参数的值。可能有更多选项,例如默认情况下
例如,获取第一个
给
参数 AuthorizedKeysFile 可能包含
%u
和%h
。请参阅授权密钥文件的位置准备主目录的数据库
默认情况下,模块getent将数据库密码存储在字典getent_passwd中。Home 是第四个属性,例如
给
现在,给定数据
您可以测试功能
给
如果更改参数
播放将获得授权密钥文件的正确位置