znerol.ssh_kba

Nom du Rôle

Statut du Build

Configurer l'authentification par clé publique SSH pour la communication machine à machine.

Exigences

Le logiciel serveur et client OpenSSH doit être présent.

Variables du Rôle

Dans une configuration typique, ce rôle est appliqué soit à un client SSH, soit à un serveur SSH. Les tâches pour l'autre partie peuvent être déléguées en définissant ssh_kba_server_hostname et ssh_kba_client_hostname. Il est également recommandé de spécifier ssh_kba_server_user et ssh_kba_client_user au lieu de se fier aux valeurs par défaut.

Remarque : Les clés hôtes SSH sont collectées à partir des faits d'ansible. Il est donc important qu'elles soient rassemblées à l'avance pour toutes les machines impliquées.

Variables affectant le serveur

Hôte et utilisateur représentant l'extrémité serveur de la connexion SSH authentifiée par clé publique :

ssh_kba_server_hostname: "{{ inventory_hostname }}"
ssh_kba_server_user: # Utilisateur Ansible sur le serveur selon les faits.

Variables affectant le client

ssh_kba_client_hostname: "{{ inventory_hostname }}"
ssh_kba_client_user: # Utilisateur Ansible sur le serveur selon les faits.
ssh_kba_client_host_fqdn: # FQDN du serveur selon les faits.
ssh_kba_client_host_ip4: # Adresse IP par défaut du serveur selon les faits.
ssh_kba_client_host_ip6: # Adresse IP par défaut du serveur selon les faits.

Variables affectant la paire de clés

ssh_kba_keypair_type: rsa # Un des dsa, ecdsa, ed25519, rsa
ssh_kba_keypair_size: # Omettre par défaut
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: # Omettre par défaut
ssh_kba_keypair_attributes: # Omettre par défaut
ssh_kba_keypair_selevel: # Omettre par défaut
ssh_kba_keypair_serole: # Omettre par défaut
ssh_kba_keypair_setype: # Omettre par défaut
ssh_kba_keypair_seuser: # Omettre par défaut

La paire de clés sera régénérée si ssh_kba_keypair_force est défini sur yes.

ssh_kba_keypair_force: # Omettre par défaut

Le fait ssh_kba_keypair_pub est défini sur la partie publique de la paire de clés pendant l'évaluation du rôle.

Variables affectant le fichier des clés autorisées du serveur

ssh_kba_keypair_pub: # voir la section des paires de clés ci-dessus
ssh_kba_server_authorized_keys_owner: "{{ ssh_kba_server_user }}"
ssh_kba_server_authorized_keys_comment: # Omettre par défaut
ssh_kba_server_authorized_keys_exclusive: # Omettre par défaut
ssh_kba_server_authorized_keys_key_options: # Omettre par défaut
ssh_kba_server_authorized_keys_manage_dir: # Omettre par défaut
ssh_kba_server_authorized_keys_path: # Omettre par défaut

Variables affectant le fichier des hôtes connus du client

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) }}"

Le FQDN du serveur, les adresses IP et les faits de clé hôte sont collectés afin de les rendre disponibles dans les known_hosts du client. Remplacer l'une des variables suivantes modifiera ce comportement :

ssh_kba_server_host_fqdn: # FQDN du serveur selon les faits.
ssh_kba_server_host_ip4: # Adresse IP par défaut du serveur selon les faits.
ssh_kba_server_host_ip6: # Adresse IP par défaut du serveur selon les faits.
ssh_kba_server_host_names: # Une liste contenant le FQDN et les adresses IP par défaut.
ssh_kba_server_host_keys: # Une liste de paires, chacune consistant en le type de clé (premier champ) et la véritable clé hôte (deuxième champ). Par défaut, elle utilise les valeurs disponibles à partir des faits d'hôte.

Les variables mentionnées ci-dessus seront utilisées pour peupler une variable avec une liste de noms d'hôtes et de clés :

ssh_kba_server_host_names_and_keys: # Une liste de paires, chacune consistant en un nom d'hôte (ou adresse IP) et une clé hôte correspondante (sous la forme acceptée par le module known_hosts)

Dépendances

Aucune.

Exemple de Playbook

- hosts: server.example.com
  tasks:
    - name: Rassembler les faits du client
      delegate: client.example.com
      delegate_facts: yes
      setup:

    - name: >-
        Authentification par clé accordée à [email protected] sur
        [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

Licence

BSD

À propos du projet

Setup SSH public key authentication for machine to machine communication.

Installer
ansible-galaxy install znerol.ssh_kba
Licence
Unknown
Téléchargements
373
Propriétaire