ssh_kba
Имя Роли
Настройка аутентификации по публичным ключам SSH для связи между машинами.
Требования
Установлено программное обеспечение OpenSSH для сервера и клиента.
Переменные роли
В типичной настройке эта роль применяется либо к SSH-клиенту, либо к SSH-серверу. Задания для другой стороны можно делегировать, установив ssh_kba_server_hostname
и ssh_kba_client_hostname
соответственно. Также в большинстве случаев рекомендуется явно указывать ssh_kba_server_user
и ssh_kba_client_user
, а не полагаться на значения по умолчанию.
Примечание: SSH-ключи хостов собираются из фактов Ansible. Поэтому важно, чтобы они были собраны заранее для всех участвующих машин.
Переменные, влияющие на сервер
Хост и пользователь, представляющие серверную сторону аутентифицированного SSH-соединения:
ssh_kba_server_hostname: "{{ inventory_hostname }}"
ssh_kba_server_user: # Пользователь Ansible на сервере согласно фактам.
Переменные, влияющие на клиент
ssh_kba_client_hostname: "{{ inventory_hostname }}"
ssh_kba_client_user: # Пользователь Ansible на сервере согласно фактам.
ssh_kba_client_host_fqdn: # FQDN сервера согласно фактам.
ssh_kba_client_host_ip4: # Основной IP-адрес сервера согласно фактам.
ssh_kba_client_host_ip6: # Основной IP-адрес сервера согласно фактам.
Переменные, влияющие на пару ключей
ssh_kba_keypair_type: rsa # Один из dsa, ecdsa, ed25519, rsa
ssh_kba_keypair_size: # Пропустить по умолчанию
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: # Пропустить по умолчанию
ssh_kba_keypair_attributes: # Пропустить по умолчанию
ssh_kba_keypair_selevel: # Пропустить по умолчанию
ssh_kba_keypair_serole: # Пропустить по умолчанию
ssh_kba_keypair_setype: # Пропустить по умолчанию
ssh_kba_keypair_seuser: # Пропустить по умолчанию
Пара ключей будет сгенерирована заново, если ssh_kba_keypair_force
установлено в yes
.
ssh_kba_keypair_force: # Пропустить по умолчанию
Факт ssh_kba_keypair_pub
устанавливается в публичную часть пары ключей во время оценки роли.
Переменные, влияющие на файл авторизованных ключей сервера
ssh_kba_keypair_pub: # см. раздел о паре ключей выше
ssh_kba_server_authorized_keys_owner: "{{ ssh_kba_server_user }}"
ssh_kba_server_authorized_keys_comment: # Пропустить по умолчанию
ssh_kba_server_authorized_keys_exclusive: # Пропустить по умолчанию
ssh_kba_server_authorized_keys_key_options: # Пропустить по умолчанию
ssh_kba_server_authorized_keys_manage_dir: # Пропустить по умолчанию
ssh_kba_server_authorized_keys_path: # Пропустить по умолчанию
Переменные, влияющие на файл известных хостов клиента
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 сервера, IP и факты ключей хостов собираются для их использования в файле known_hosts
клиента. Переопределение любых из следующих переменных изменит это поведение:
ssh_kba_server_host_fqdn: # FQDN сервера согласно фактам.
ssh_kba_server_host_ip4: # Основной IP-адрес сервера согласно фактам.
ssh_kba_server_host_ip6: # Основной IP-адрес сервера согласно фактам.
ssh_kba_server_host_names: # Список, состоящий из FQDN и основных IP-адресов.
ssh_kba_server_host_keys: # Список пар, где каждая пара состоит из типа ключа (первое поле) и фактического ключа хоста (второе поле). По умолчанию значения доступны из фактов хоста.
Указанные выше переменные будут использоваться для заполнения переменной со списком имен хостов и ключей:
ssh_kba_server_host_names_and_keys: # Список пар, где каждая пара состоит из имени хоста (или IP-адреса) и соответствующего ключа хоста (в формате, который принимает модуль known_hosts)
Зависимости
Нет.
Пример плейбука
- hosts: server.example.com
tasks:
- name: Сбор фактов клиента
delegate: client.example.com
delegate_facts: yes
setup:
- name: >-
Аутентификация на основе ключа предоставлена [email protected] на
[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
Лицензия
BSD
ansible-galaxy install znerol/ansible-role-ssh-kba