Spec-Zone.ru › Ansible 2.8

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

Новая версия 2.8.

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

Краткое описание

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

Требования

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

  • ssh-keygen

Параметры

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

псевдонимы: attr
force
булево
    Варианты:
  • нет ←
  • да
Сертификат должен быть перегенерирован, даже если он уже существует и действителен.
group
строка
Имя группы, которая должна владеть файлом/директорией, как если бы оно было передано в chown.
identifier
строка
Укажите идентификатор ключа при подписании открытого ключа. Идентификатор, который регистрируется сервером, когда сертификат используется для аутентификации.
mode
строка
Разрешения, которые должны иметь результирующий файл или директория.
Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую цифру 0, чтобы парсер 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-agent (по умолчанию разрешено).
no-port-forwarding: Отключить переадресацию портов (по умолчанию разрешено).
no-pty Disable: Выделение PTY (по умолчанию разрешено).
no-user-rc: Отключить выполнение ~/.ssh/rc sshd (по умолчанию разрешено).
no-x11-forwarding: Отключить переадресацию X11 (по умолчанию разрешено).
permit-agent-forwarding: Разрешить переадресацию ssh-agent.
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
путь / обязательно
Путь к файлу, содержащему сертификат.
principals
список
Сертификаты могут быть ограничены по действию для набора имен принципалов (пользователь/хост). По умолчанию сгенерированные сертификаты действительны для всех пользователей или хостов.
public_key
путь / обязательно
Путь к открытому ключу, который будет подписан ключом подписи для генерации сертификата.
selevel
строка
По умолчанию:
"s0"
Часть контекста файла 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, используемому для подписи открытого ключа для генерации сертификата.
state
строка
    Варианты:
  • существует ←
  • отсутствует
Должен ли существовать сертификат хоста или пользователя, принимая действия, если состояние отличается от указанного.
type
строка / обязательно
    Варианты:
  • хост
  • пользователь
Следует ли модулю сгенерировать сертификат хоста или пользователя.
unsafe_writes
булево
добавлен в 2.2
    Варианты:
  • нет ←
  • да
Влияние на использование атомарной операции для предотвращения повреждения данных или несогласованного чтения из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним из примеров являются файлы, монтированные в docker, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только небезопасным способом.
Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции завершаются неудачно (тем не менее, он не заставляет Ansible выполнять небезопасные записи).
ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.
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. Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
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. Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.

Примеры

# Generate an OpenSSH user certificate that is valid forever and for all users
- 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
- 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

# Generate an OpenSSH host certificate that is valid forever and only for example.com and examplehost
- 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

# Generate an OpenSSH host Certificate that is valid from 21.1.2001 to 21.1.2019
- 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"

# Generate an OpenSSH user Certificate with clear and force-command option:
- 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"

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

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

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

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

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

Пример:
хост


Статус

  • Этот модуль не гарантирует обратной совместимости интерфейса. [превью]
  • Этот модуль поддерживается сообществом Ansible. [сообщество]

Авторы

  • 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.8/modules/openssh_cert_module.html

Spec-Zone.ru

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