Como posso obter o Ansible para preencher o arquivo correto quando meu /etc/ssh/sshd_config tem AuthorizedKeysFile definido como /etc/ssh/authorized_keys/%u ? O Ansible parece ignorar a configuração e coloca as chaves em $HOME/.ssh/authorized_keys
cartilha :
---
- 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]') }}"
Da documentação :
Há algumas etapas para preparar essa funcionalidade. Primeiro, obtenha o valor do parâmetro. Pode haver mais opções, por exemplo, por padrão
Por exemplo, pegue o primeiro
dá
O parâmetro AuthorizedKeysFile pode conter
%u
e%h
. Veja a localização do arquivo de chaves autorizadasPreparar o banco de dados dos diretórios pessoais
Por padrão, o módulo getent armazena o banco de dados passwd no dicionário getent_passwd . Home é o 4º atributo, por exemplo
dá
Agora, dados os dados
você pode testar a funcionalidade
dá
Se você alterar o parâmetro
o jogo obterá a localização correta do arquivo de chaves autorizadas