Spec-Zone.ru › Ansible 2.10

community.crypto.openssh_cert – Генерация сертификатов OpenSSH хоста или пользователя.

Примечание

Этот плагин входит в коллекцию community.crypto (версия 1.3.0).

Для его установки используйте: ansible-galaxy collection install community.crypto.

Для использования в плейбуке укажите: community.crypto.openssh_cert.

  • Описание
  • Требования
  • Параметры
  • Примеры
  • Возвращаемые значения

Описание

  • Генерация и повторная генерация сертификатов OpenSSH хоста или пользователя.

Требования

Ниже приведены требования, необходимые на хосте, на котором выполняется этот модуль.

  • ssh-keygen

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
добавлен в 2.3 ansible.builtin
Атрибуты, которые должны иметь результирующий файл или директория.
Для получения поддерживаемых флагов обратитесь к странице справки chattr на целевой системе.
Эта строка должна содержать атрибуты в том же порядке, что и при отображении командой lsattr.
Оператор = предполагается по умолчанию, в противном случае операторы + или - должны быть включены в строку.

псевдонимы: attr
force
логическое значение
    Варианты:
  • нет ←
  • да
Нужно ли перегенерировать сертификат, даже если он уже существует и действителен.
group
строка
Имя группы, которая должна владеть файлом/директорией, как это передается в chown.
identifier
строка
Укажите идентификатор ключа при подписи открытого ключа. Идентификатор, который регистрируется сервером, когда сертификат используется для аутентификации.
mode
сырое
Разрешения, которые должна иметь результирующий файл или директория.
Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую нуль, чтобы парсер YAML Ansible знал, что это восьмеричное число (например, 0644 или 01777), либо заключить его в кавычки (например, '644' или '1777'), чтобы Ansible получил строку и мог выполнить преобразование из строки в число.
Передача Ansible числа без соблюдения одного из этих правил приведет к десятичному числу, что приведет к неожиданным результатам.
Начиная с Ansible 1.8, режим может быть указан в символической форме (например, u+rwx или u=rw,g=r,o=r).
options
список / элементы=строка
Укажите параметры сертификата при подписи ключа. Параметры, допустимые для сертификатов пользователя:
clear: Очистить все разрешенные разрешения. Это полезно для очистки набора разрешений по умолчанию, чтобы разрешения можно было добавлять индивидуально.
force-command=command: Принудительное выполнение команды вместо любой оболочки или команды, указанной пользователем, когда сертификат используется для аутентификации.
no-agent-forwarding: Отключить передачу ssh-агента (разрешено по умолчанию).
no-port-forwarding: Отключить передачу портов (разрешено по умолчанию).
no-pty Disable: Выделение PTY (разрешено по умолчанию).
no-user-rc: Отключить выполнение ~/.ssh/rc sshd (разрешено по умолчанию).
no-x11-forwarding: Отключить передачу X11 (разрешено по умолчанию)
permit-agent-forwarding: Разрешить передачу ssh-агента.
permit-port-forwarding: Разрешить передачу портов.
permit-pty: Разрешить выделение PTY.
permit-user-rc: Разрешить выполнение ~/.ssh/rc sshd.
permit-x11-forwarding: Разрешить передачу X11.
source-address=address_list: Ограничить адреса источника, из которых сертификат считается действительным. address_list — это список, разделенный запятыми, одного или нескольких пар адрес/маска сети в формате CIDR.
В настоящее время для ключей хоста нет допустимых параметров.
owner
строка
Имя пользователя, который должен владеть файлом/директорией, как это передается в chown.
path
путь / обязательно
Путь к файлу, содержащему сертификат.
pkcs11_provider
строка
добавлен в 1.1.0 community.crypto
Для использования ключа подписи, расположенного на токен PKCS#11, задайте это имя (или полный путь) разделяемой библиотеки для использования с токеном. Обычно libpkcs11.so.
Если это задано, signing_key должен указывать на файл, содержащий открытый ключ ЦС.
principals
список / элементы=строка
Сертификаты могут быть ограничены по действию для набора имен принципов (пользователь/хост). По умолчанию сгенерированные сертификаты действительны для всех пользователей или хостов.
public_key
путь
Путь к открытому ключу, который будет подписан ключом подписи для генерации сертификата.
Требуется, если state — present.
selevel
строка
Часть контекста файла SELinux.
Это атрибут MLS/MCS, иногда известный как range.
Если установлено значение _default, будет использоваться часть политики level, если она доступна.
serial_number
целое число
Укажите серийный номер сертификата. Серийный номер регистрируется сервером, когда сертификат используется для аутентификации. Серийный номер сертификата может использоваться в списке отзыва ключей. Номер можно опустить для проверок, но необходимо указать его снова для нового сертификата. Примечание: значение по умолчанию, установленное ssh-keygen, равно 0.
serole
строка
Часть контекста файла SELinux.
Если установлено значение _default, будет использоваться часть политики role, если она доступна.
setype
строка
Часть контекста файла SELinux.
Если установлено значение _default, будет использоваться часть политики type, если она доступна.
seuser
строка
Часть контекста файла SELinux.
По умолчанию используется политика system, если применимо.
Если установлено значение _default, будет использоваться часть политики user, если она доступна.
signing_key
путь
Путь к закрытому ключу openssh, который используется для подписи открытого ключа с целью генерации сертификата.
Если закрытый ключ находится на токен PKCS#11 (pkcs11_provider), задайте этот параметр на путь к открытому ключу вместо этого.
Требуется, если state — present.
state
строка
    Варианты:
  • существующий ←
  • отсутствующий
Нужно ли, чтобы сертификат хоста или пользователя существовал или нет, выполняя действие, если состояние отличается от заявленного.
type
строка
    Варианты:
  • хост
  • пользователь
Нужно ли модулю сгенерировать сертификат хоста или пользователя.
Требуется, если state — present.
unsafe_writes
логическое значение
добавлен в 2.2 ansible.builtin
    Варианты:
  • нет ←
  • да
Влияет на то, когда использовать атомную операцию для предотвращения повреждения данных или несогласованных чтений из целевого файла.
По умолчанию этот модуль использует атомные операции для предотвращения повреждения данных или несогласованных чтений из целевых файлов, но иногда системы настроены или просто сломаны таким образом, что это предотвращается. Одним примером являются смонтированные файлы docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.
Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомные операции завершаются неудачей (однако он не заставляет Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены проблемам гонки и могут привести к повреждению данных.
use_agent
логическое значение
добавлен в 1.3.0 community.crypto
    Варианты:
  • нет ←
  • да
Использовать ли ssh-keygen ключ ЦС, находящийся в ssh-агенте.
valid_at
строка
Проверьте, действителен ли сертификат в определенный момент времени. Если нет, сертификат будет перегенерирован. Время всегда интерпретируется как UTC. В основном используется с относительными временными метками для valid_from и / или valid_to. Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
valid_from
строка
Точка во времени, начиная с которой сертификат действителен. Время можно указать либо как относительное время, либо как абсолютную временную метку. Время всегда интерпретируется как UTC. Допустимые форматы: [+-]timespec | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS | YYYY-MM-DD HH:MM:SS | always где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h. Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Требуется, если state — present.
valid_to
строка
Точка во времени, до которой сертификат действителен. Время можно указать либо как относительное время, либо как абсолютную временную метку. Время всегда интерпретируется как UTC. Допустимые форматы: [+-]timespec | YYYY-MM-DD | YYYY-MM-DDTHH:MM:SS | YYYY-MM-DD HH:MM:SS | forever где timespec может быть целым числом + [w | d | h | m | s] (например, +32w1d2h. Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Требуется, если state — present.

Примеры

- name: Generate an OpenSSH user certificate that is valid forever and for all users
  community.crypto.openssh_cert:
    type: user
    signing_key: /path/to/private_key
    public_key: /path/to/public_key.pub
    path: /path/to/certificate
    valid_from: always
    valid_to: forever

# Generate an OpenSSH host certificate that is valid for 32 weeks from now and will be regenerated
# if it is valid for less than 2 weeks from the time the module is being run
- name: Generate an OpenSSH host certificate with valid_from, valid_to and valid_at parameters
  community.crypto.openssh_cert:
    type: host
    signing_key: /path/to/private_key
    public_key: /path/to/public_key.pub
    path: /path/to/certificate
    valid_from: +0s
    valid_to: +32w
    valid_at: +2w

- name: Generate an OpenSSH host certificate that is valid forever and only for example.com and examplehost
  community.crypto.openssh_cert:
    type: host
    signing_key: /path/to/private_key
    public_key: /path/to/public_key.pub
    path: /path/to/certificate
    valid_from: always
    valid_to: forever
    principals:
        - example.com
        - examplehost

- name: Generate an OpenSSH host Certificate that is valid from 21.1.2001 to 21.1.2019
  community.crypto.openssh_cert:
    type: host
    signing_key: /path/to/private_key
    public_key: /path/to/public_key.pub
    path: /path/to/certificate
    valid_from: "2001-01-21"
    valid_to: "2019-01-21"

- name: Generate an OpenSSH user Certificate with clear and force-command option
  community.crypto.openssh_cert:
    type: user
    signing_key: /path/to/private_key
    public_key: /path/to/public_key.pub
    path: /path/to/certificate
    valid_from: always
    valid_to: forever
    options:
        - "clear"
        - "force-command=/tmp/bla/foo"

- name: Generate an OpenSSH user certificate using a PKCS#11 token
  community.crypto.openssh_cert:
    type: user
    signing_key: /path/to/ca_public_key.pub
    pkcs11_provider: libpkcs11.so
    public_key: /path/to/public_key.pub
    path: /path/to/certificate
    valid_from: always
    valid_to: forever

Значения возврата

Общие значения возврата описаны здесь, следующие — поля, уникальные для этого модуля:

Ключ Возвращаемое значение Описание
filename
строка
изменено или успех
путь к сертификату

Пример:
/tmp/certificate-cert.pub
info
список / элементы=строка
изменение или успех
Информация о сертификате. Вывод ssh-keygen -L -f.

type
строка
изменено или успех
тип сертификата (хост или пользователь)

Пример:
хост


Авторы

  • David Kainz (@lolcube)

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/community/crypto/openssh_cert_module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API