znerol.ssh_kba
Nazwa roli
Ustawienie autoryzacji za pomocą klucza publicznego SSH do komunikacji między maszynami.
Wymagania
Zainstalowane oprogramowanie serwera i klienta OpenSSH.
Zmienne roli
W typowym ustawieniu, ta rola jest stosowana do klienta SSH lub serwera SSH. Zadania dla drugiej strony można delegować, ustawiając odpowiednio ssh_kba_server_hostname
i ssh_kba_client_hostname
. W większości przypadków zaleca się również jawne określenie ssh_kba_server_user
i ssh_kba_client_user
, zamiast polegać na domyślnych ustawieniach.
Uwaga: Klucze hostów SSH są zbierane z faktów ansible. Dlatego ważne jest, aby były wcześniej zebrane dla wszystkich zaangażowanych maszyn.
Zmienne wpływające na serwer
Host i użytkownik reprezentujący serwer jako punkt końcowy połączenia SSH z autoryzacją klucza publicznego:
ssh_kba_server_hostname: "{{ inventory_hostname }}"
ssh_kba_server_user: # Użytkownik Ansible na serwerze zgodnie z faktami.
Zmienne wpływające na klienta
ssh_kba_client_hostname: "{{ inventory_hostname }}"
ssh_kba_client_user: # Użytkownik Ansible na serwerze zgodnie z faktami.
ssh_kba_client_host_fqdn: # FQDN serwera zgodnie z faktami.
ssh_kba_client_host_ip4: # Domyślny adres IP serwera zgodnie z faktami.
ssh_kba_client_host_ip6: # Domyślny adres IP serwera zgodnie z faktami.
Zmienne wpływające na parę kluczy
ssh_kba_keypair_type: rsa # Jeden z dsa, ecdsa, ed25519, rsa
ssh_kba_keypair_size: # Pomiń domyślnie
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: # Pomiń domyślnie
ssh_kba_keypair_attributes: # Pomiń domyślnie
ssh_kba_keypair_selevel: # Pomiń domyślnie
ssh_kba_keypair_serole: # Pomiń domyślnie
ssh_kba_keypair_setype: # Pomiń domyślnie
ssh_kba_keypair_seuser: # Pomiń domyślnie
Para kluczy zostanie odtworzona, jeśli ssh_kba_keypair_force
zostanie ustawione na yes
.
ssh_kba_keypair_force: # Pomiń domyślnie
Fakt ssh_kba_keypair_pub
jest ustawiany na publiczną część pary kluczy podczas oceny roli.
Zmienne wpływające na plik autoryzowanych kluczy serwera
ssh_kba_keypair_pub: # zobacz sekcję kluczy powyżej
ssh_kba_server_authorized_keys_owner: "{{ ssh_kba_server_user }}"
ssh_kba_server_authorized_keys_comment: # Pomiń domyślnie
ssh_kba_server_authorized_keys_exclusive: # Pomiń domyślnie
ssh_kba_server_authorized_keys_key_options: # Pomiń domyślnie
ssh_kba_server_authorized_keys_manage_dir: # Pomiń domyślnie
ssh_kba_server_authorized_keys_path: # Pomiń domyślnie
Zmienne wpływające na plik znanych hostów klienta
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 serwera, adresy IP i fakty kluczy hostów są zbierane, aby były dostępne w known_hosts
klienta. Nadpisanie dowolnej z poniższych zmiennych zmieni to zachowanie:
ssh_kba_server_host_fqdn: # FQDN serwera zgodnie z faktami.
ssh_kba_server_host_ip4: # Domyślny adres IP serwera zgodnie z faktami.
ssh_kba_server_host_ip6: # Domyślny adres IP serwera zgodnie z faktami.
ssh_kba_server_host_names: # Lista składająca się z FQDN i domyślnych adresów IP.
ssh_kba_server_host_keys: # Lista par, z których każda składa się z typu klucza (pierwsze pole) i rzeczywistego klucza hosta (drugie pole). Domyślnie wartości dostępne z faktów hosta.
Powyższe zmienne będą użyte do populacji zmiennej z listą nazw hostów i kluczy:
ssh_kba_server_host_names_and_keys: # Lista par, z których każda składa się z nazwy hosta (lub adresu IP) i odpowiadającego klucza hosta (w formie akceptowanej przez moduł known_hosts)
Zależności
Brak.
Przykładowy playbook
- hosts: server.example.com
tasks:
- name: Zbierz fakty klienta
delegate: client.example.com
delegate_facts: yes
setup:
- name: >-
Autoryzacja na podstawie klucza przyznana [email protected] na
[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
Licencja
BSD
ansible-galaxy install znerol.ssh_kba