znerol.ssh_kba
Rollenname
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