znerol.ssh_kba

Rollenname

Build-Status

Richte die Authentifizierung mit öffentlichen SSH-Schlüsseln für die Kommunikation von Maschine zu Maschine ein.

Anforderungen

Es wird Software für OpenSSH-Server und -Client benötigt.

Rollenvariablen

In einer typischen Konfiguration wird diese Rolle entweder auf einen SSH-Client oder einen SSH-Server angewendet. Aufgaben für die jeweils andere Seite können delegiert werden, indem ssh_kba_server_hostname und ssh_kba_client_hostname festgelegt werden. In den meisten Fällen wird zudem empfohlen, ssh_kba_server_user und ssh_kba_client_user ausdrücklich zu definieren, anstatt die Standardwerte zu verwenden.

Hinweis: SSH-Hostschlüssel werden aus Ansible-Fakten gesammelt. Daher ist es wichtig, dass sie im Voraus für alle beteiligten Maschinen gesammelt werden.

Variablen, die den Server betreffen

Host und Benutzer, die den Server-Endpunkt der authentifizierten SSH-Verbindung darstellen:

ssh_kba_server_hostname: "{{ inventory_hostname }}"
ssh_kba_server_user: # Ansible-Benutzer auf dem Server entsprechend den Fakten.

Variablen, die den Client betreffen

ssh_kba_client_hostname: "{{ inventory_hostname }}"
ssh_kba_client_user: # Ansible-Benutzer auf dem Server entsprechend den Fakten.
ssh_kba_client_host_fqdn: # FQDN des Servers entsprechend den Fakten.
ssh_kba_client_host_ip4: # Standard-IP-Adresse des Servers entsprechend den Fakten.
ssh_kba_client_host_ip6: # Standard-IP-Adresse des Servers entsprechend den Fakten.

Variablen, die das Schlüsselpaar betreffen

ssh_kba_keypair_type: rsa # Eine der Optionen dsa, ecdsa, ed25519, rsa
ssh_kba_keypair_size: # Standardmäßig weglassen
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: # Standardmäßig weglassen
ssh_kba_keypair_attributes: # Standardmäßig weglassen
ssh_kba_keypair_selevel: # Standardmäßig weglassen
ssh_kba_keypair_serole: # Standardmäßig weglassen
ssh_kba_keypair_setype: # Standardmäßig weglassen
ssh_kba_keypair_seuser: # Standardmäßig weglassen

Das Schlüsselpaar wird neu generiert, wenn ssh_kba_keypair_force auf yes gesetzt wird.

ssh_kba_keypair_force: # Standardmäßig weglassen

Das Faktum ssh_kba_keypair_pub wird während der Rollenauswertung auf den öffentlichen Teil des Schlüsselpaares gesetzt.

Variablen, die die autorisierten Schlüsseldateien des Servers betreffen

ssh_kba_keypair_pub: # siehe Abschnitt Schlüsselpaare oben
ssh_kba_server_authorized_keys_owner: "{{ ssh_kba_server_user }}"
ssh_kba_server_authorized_keys_comment: # Standardmäßig weglassen
ssh_kba_server_authorized_keys_exclusive: # Standardmäßig weglassen
ssh_kba_server_authorized_keys_key_options: # Standardmäßig weglassen
ssh_kba_server_authorized_keys_manage_dir: # Standardmäßig weglassen
ssh_kba_server_authorized_keys_path: # Standardmäßig weglassen

Variablen, die die bekannten Hosts-Dateien des Clients betreffen

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

FQDN des Servers, IPs und Hostschlüssel-Fakten werden gesammelt, um sie in den known_hosts des Clients zur Verfügung zu stellen. Das Überschreiben einer der folgenden Variablen ändert dieses Verhalten:

ssh_kba_server_host_fqdn: # FQDN des Servers entsprechend den Fakten.
ssh_kba_server_host_ip4: # Standard-IP-Adresse des Servers entsprechend den Fakten.
ssh_kba_server_host_ip6: # Standard-IP-Adresse des Servers entsprechend den Fakten.
ssh_kba_server_host_names: # Eine Liste mit FQDN und Standard-IP-Adressen.
ssh_kba_server_host_keys: # Eine Liste von Paaren, die jeweils aus dem Schlüsselt
    yp (erstes Feld) und dem tatsächlichen Hostschlüssel (zweites Feld) bestehen. Standardwerte sind
    Werte, die aus den Hostfakten verfügbar sind.

Die oben genannten Variablen werden verwendet, um eine Variable mit einer Liste von Hostnamen und Schlüsseln zu befüllen:

ssh_kba_server_host_names_and_keys: # Eine Liste von Paaren, die jeweils aus einem
    Hostnamen (oder IP-Adresse) und dem entsprechenden Hostschlüssel (in dem Format, das vom Modul
    known_hosts akzeptiert wird) bestehen.

Abhängigkeiten

Keine.

Beispiel-Playbook

- hosts: server.example.com
  tasks:
    - name: Client-Fakten sammeln
      delegate: client.example.com
      delegate_facts: ja
      setup:

    - name: >-
        Schlüsselbasierte Authentifizierung gewährt an [email protected] auf
        [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

Lizenz

BSD

Über das Projekt

Setup SSH public key authentication for machine to machine communication.

Installieren
ansible-galaxy install znerol.ssh_kba
GitHub Repository
Lizenz
Unknown
Downloads
373
Besitzer