znerol.ssh_kba
Nombre del Rol
Configura la autenticación de clave pública SSH para comunicación de máquina a máquina.
Requisitos
Software de OpenSSH (servidor y cliente) instalado.
Variables del Rol
En una configuración típica, este rol se aplica a un cliente SSH o a un servidor SSH. Las tareas para el otro lado se pueden delegar configurando ssh_kba_server_hostname
y ssh_kba_client_hostname
respectivamente. En la mayoría de los casos, se recomienda especificar también ssh_kba_server_user
y ssh_kba_client_user
de manera explícita, en lugar de confiar en los valores predeterminados.
Nota: Las claves de host SSH se recopilan de los hechos de Ansible. Por lo tanto, es importante asegurarse de que se recopilen de antemano para todas las máquinas involucradas.
Variables que afectan al servidor
Host y usuario que representan el punto final del servidor para la conexión SSH autenticada por clave pública:
ssh_kba_server_hostname: "{{ inventory_hostname }}"
ssh_kba_server_user: # Usuario de Ansible en el servidor según los hechos.
Variables que afectan al cliente
ssh_kba_client_hostname: "{{ inventory_hostname }}"
ssh_kba_client_user: # Usuario de Ansible en el cliente según los hechos.
ssh_kba_client_host_fqdn: # FQDN del servidor según los hechos.
ssh_kba_client_host_ip4: # Dirección IP predeterminada del servidor según los hechos.
ssh_kba_client_host_ip6: # Dirección IP predeterminada del servidor según los hechos.
Variables que afectan al par de claves
ssh_kba_keypair_type: rsa # Uno de dsa, ecdsa, ed25519, rsa
ssh_kba_keypair_size: # Omitir por defecto
ssh_kba_keypair_comment: "{{ ssh_kba_client_user }}@{{ ssh_kba_client_hostname }}"
ssh_kba_keypair_dir: ~/.ssh
ssh_kba_keypair_name: "id_{{ ssh_kba_keypair_type }}"
ssh_kba_keypair_path: "{{ ssh_kba_keypair_dir }}/{{ ssh_kba_keypair_name }}"
ssh_kba_keypair_owner: "{{ ssh_kba_client_user }}"
ssh_kba_keypair_group: # Omitir por defecto
ssh_kba_keypair_attributes: # Omitir por defecto
ssh_kba_keypair_selevel: # Omitir por defecto
ssh_kba_keypair_serole: # Omitir por defecto
ssh_kba_keypair_setype: # Omitir por defecto
ssh_kba_keypair_seuser: # Omitir por defecto
El par de claves se regenerará si ssh_kba_keypair_force
se establece en yes
.
ssh_kba_keypair_force: # Omitir por defecto
El hecho ssh_kba_keypair_pub
se establece en la parte pública del par de claves durante la evaluación del rol.
Variables que afectan al archivo de claves autorizadas del servidor
ssh_kba_keypair_pub: # ver sección de par de claves arriba
ssh_kba_server_authorized_keys_owner: "{{ ssh_kba_server_user }}"
ssh_kba_server_authorized_keys_comment: # Omitir por defecto
ssh_kba_server_authorized_keys_exclusive: # Omitir por defecto
ssh_kba_server_authorized_keys_key_options: # Omitir por defecto
ssh_kba_server_authorized_keys_manage_dir: # Omitir por defecto
ssh_kba_server_authorized_keys_path: # Omitir por defecto
Variables que afectan al archivo de hosts conocidos del cliente
ssh_kba_client_known_hosts_owner: "{{ ssh_kba_client_user }}"
ssh_kba_client_known_hosts_hash_host | default(omit) }}"
ssh_kba_client_known_hosts_path | default(omit) }}"
El FQDN del servidor, IPs y hechos de la clave de host se recopilan para que estén disponibles en los known_hosts
del cliente. Sobrescribir cualquiera de las siguientes variables modificará este comportamiento:
ssh_kba_server_host_fqdn: # FQDN del servidor según los hechos.
ssh_kba_server_host_ip4: # Dirección IP predeterminada del servidor según los hechos.
ssh_kba_server_host_ip6: # Dirección IP predeterminada del servidor según los hechos.
ssh_kba_server_host_names: # Una lista que consiste en FQDN y direcciones IP predeterminadas.
ssh_kba_server_host_keys: # Una lista de pares, cada uno consistiendo en el tipo de clave (primer campo) y la clave de host real (segundo campo). Por defecto, corresponde a los valores disponibles de los hechos del host.
Las variables mencionadas anteriormente se utilizarán para poblar una variable con una lista de nombres de host y claves:
ssh_kba_server_host_names_and_keys: # Una lista de pares, cada uno consistiendo en un nombre de host (o dirección IP) y una clave de host correspondiente (en el formato aceptado por el módulo known_hosts)
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: server.example.com
tasks:
- name: Recopilar hechos del cliente
delegate: client.example.com
delegate_facts: yes
setup:
- name: >-
Autenticación basada en clave concedida a [email protected] en
[email protected]
vars:
ssh_kba_server_user: alpha
ssh_kba_client_hostname: client.example.com
ssh_kba_client_user: beta
import_role:
name: znerol.ssh_kba
Licencia
BSD
Setup SSH public key authentication for machine to machine communication.
ansible-galaxy install znerol.ssh_kba