Spec-Zone.ru › Ansible 2.9

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

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

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

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

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

Требования

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

  • ssh-keygen

Параметры

Параметр Варианты/Значения по умолчанию Комментарии
attributes
строка
Атрибуты, которые должны иметь результирующий файл или директория.
Для получения поддерживаемых флагов обратитесь к странице руководства для 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-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
путь
Путь к открытому ключу, который будет подписан ключом подписи для генерации сертификата.
Требуется, если state — present.
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
путь
Путь к закрытому открытому ключу ssh, используемому для подписи открытого ключа для генерации сертификата.
Требуется, если state — present.
state
строка
    Варианты:
  • существующий ←
  • отсутствующий
Должен ли сертификат хоста или пользователя существовать или нет, принимая действия, если состояние отличается от указанного.
type
строка
    Варианты:
  • хост
  • пользователь
Должен ли модуль генерировать сертификат хоста или пользователя.
Требуется, если state — present.
unsafe_writes
логическое
    Варианты:
  • нет ←
  • да
Влияние на использование атомарных операций для предотвращения повреждения данных или несогласованного чтения из целевого файла.
По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто неисправны таким образом, что это невозможно. Одним примером являются файлы, смонтированные в 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. Обратите внимание, что при использовании относительного времени этот модуль НЕ идемпотентен.
Требуется, если 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.

Примеры

# 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.9/modules/openssh_cert_module.html

Spec-Zone.ru

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