Модуль community.crypto.openssh_cert — создание сертификатов узла или пользователя OpenSSH
Примечание
Этот модуль входит в коллекцию community.crypto (версия 3.2.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля необходимы дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: community.crypto.openssh_cert.
Краткое описание
- Создание и повторное создание сертификатов узла или пользователя OpenSSH.
Требования
На узле, выполняющем этот модуль, должны быть соблюдены следующие требования.
- ssh-keygen
Параметры
Параметр | Комментарии |
|---|---|
attributes псевдонимы: attr строка | Атрибуты, которыми должен обладать результирующий объект файловой системы. Список поддерживаемых флагов можно найти на странице руководства для Эта строка должна содержать атрибуты в том же порядке, в каком они отображаются командой По умолчанию предполагается оператор |
force логическое значение | Следует ли повторно создать сертификат, даже если он уже существует и является действительным. Эквивалентно Варианты:
|
group строка | Имя группы, которой должен принадлежать объект файловой системы; оно передавалось бы команде Если значение не указано, используется текущая группа текущего пользователя, кроме случая, когда пользователь — root: тогда может быть сохранён прежний владелец. |
identifier строка | Указывает идентификатор ключа при подписании открытого ключа. Идентификатор регистрируется сервером при использовании сертификата для аутентификации. |
ignore_timestamps логическое значение добавлено в community.crypto 2.2.0 | Следует ли игнорировать временные метки Однако эти значения всё равно будут применены к новому сертификату, если выполняются другие необходимые условия для его создания или повторного создания. Варианты:
|
mode любое значение | Права доступа, которыми должен обладать результирующий объект файловой системы. Если вы привыкли к Если передать Ansible число, не следуя ни одному из этих правил, оно будет интерпретировано как десятичное, что приведёт к неожиданным результатам. Начиная с Ansible 1.8, режим можно задавать в символьном формате (например, Если Если Указание |
options список / элементы=строка | Указывает параметры сертификата при подписании ключа. Для сертификатов пользователей допустимы следующие параметры:
На данный момент для ключей узлов параметры не предусмотрены. |
owner строка | Имя пользователя, которому должен принадлежать объект файловой системы; оно передавалось бы команде Если значение не указано, используется текущий пользователь, кроме случая, когда пользователь — root: тогда может быть сохранён прежний владелец. Числовое имя пользователя будет считаться идентификатором пользователя, а не именем пользователя. Во избежание неоднозначности не используйте числовые имена пользователей. |
path путь / обязательно | Путь к файлу, содержащему сертификат. |
pkcs11_provider строка добавлено в community.crypto 1.1.0 | Чтобы использовать ключ подписи, хранящийся на токене PKCS#11, укажите здесь имя (или полный путь) общей библиотеки, используемой с токеном. Обычно это Если этот параметр задан, |
principals список / элементы=строка | Можно ограничить действие сертификатов набором допустимых имён принципалов (пользователей/узлов). По умолчанию созданные сертификаты действительны для всех пользователей или узлов. |
public_key путь | Путь к открытому ключу, который будет подписан ключом подписи для создания сертификата. Обязательно, если |
regenerate строка добавлено в community.crypto 1.8.0 | Если задано значение Если задано значение Если задано значение Если задано значение
Варианты:
|
selevel строка | Уровневая часть контекста объекта файловой системы SELinux. Это атрибут MLS/MCS, иногда называемый Если задано значение |
serial_number целое число | Указывает серийный номер сертификата. Сервер регистрирует серийный номер при использовании сертификата для аутентификации. Серийный номер сертификата можно использовать в списке отзыва ключей (KeyRevocationList). Для проверок серийный номер можно не указывать, но для нового сертификата его необходимо указать повторно. Примечание: значение по умолчанию, устанавливаемое ssh-keygen, равно 0. Этот параметр принимает целое число. Если необходимо указать серийный номер в виде разделённой двоеточиями шестнадцатеричной строки, например |
serole строка | Ролевая часть контекста объекта файловой системы SELinux. Если задано значение |
setype строка | Типовая часть контекста объекта файловой системы SELinux. Если задано значение |
seuser строка | Пользовательская часть контекста объекта файловой системы SELinux. По умолчанию используется политика Если задано значение |
signature_algorithm строка добавлено в community.crypto 1.10.0 | Начиная с OpenSSH 8.2 алгоритм подписи SHA-1 для ключей RSA отключён, а Использование любого значения этого параметра с ключом Примечание: версии OpenSSH до 7.2 не поддерживают алгоритмы подписи SHA-2 для ключей RSA, а версии OpenSSH до 7.3 не поддерживают алгоритмы подписи SHA-2 для сертификатов. Дополнительные сведения см. на странице https://www.openssh.com/txt/release-8.2. Варианты:
|
signing_key путь | Путь к закрытому ключу OpenSSH, используемому для подписания открытого ключа и создания сертификата. Если закрытый ключ находится на токене PKCS#11 ( Обязательно, если |
state строка | Указывает, должен ли сертификат узла или пользователя существовать; если текущее состояние отличается от указанного, выполняется соответствующее действие. Варианты:
|
type строка | Указывает, должен ли модуль создать сертификат узла или пользователя. Обязательно, если Варианты:
|
unsafe_writes логическое значение | Определяет, когда использовать атомарные операции для предотвращения повреждения данных и несогласованного чтения из целевого объекта файловой системы. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных и несогласованного чтения из целевых объектов файловой системы, но иногда конфигурация систем или их неисправности не позволяют этого. Например, смонтированные в Docker объекты файловой системы нельзя атомарно обновить из контейнера — их можно записать только небезопасным способом. Этот параметр позволяет Ansible перейти к небезопасным способам обновления объектов файловой системы, если атомарные операции завершаются неудачей (однако он не заставляет Ansible выполнять небезопасную запись). ВАЖНО! Небезопасная запись подвержена состояниям гонки и может привести к повреждению данных. Варианты:
|
use_agent логическое значение добавлено в community.crypto 1.3.0 | Следует ли ssh-keygen использовать ключ CA, хранящийся в ssh-agent. Варианты:
|
valid_at строка | Проверяет, действителен ли сертификат в определённый момент времени. Если нет, сертификат будет создан заново. Время всегда интерпретируется как UTC. В основном используется с относительным указанием времени для |
valid_from строка | Момент времени, начиная с которого сертификат действителен. Время можно задать как относительное значение или как абсолютную временную метку. Время всегда интерпретируется как UTC. Допустимые форматы: Значение Чтобы игнорировать это значение при сравнении с существующим сертификатом, задайте Обязательно, если |
valid_to строка | Момент времени, до которого сертификат действителен. Время можно задать как относительное значение или как абсолютную временную метку. Время всегда интерпретируется как UTC. Допустимые форматы: Чтобы игнорировать это значение при сравнении с существующим сертификатом, задайте Обязательно, если |
Атрибуты
Атрибут | Поддержка | Описание |
|---|---|---|
check_mode | Поддержка: полная | Модуль можно запускать в режиме |
diff_mode | Поддержка: полная | В режиме сравнения будут возвращены сведения об изменениях (или о возможных изменениях в |
idempotent | Поддержка: частичная Модуль не является идемпотентным, если заданы Если используются относительные временные метки и задано | При повторном запуске с теми же аргументами вне режима проверки второй вызов сообщает об отсутствии изменений. Предполагается, что система, которой управляет модуль или которую он опрашивает, не изменилась существенным образом. |
safe_file_operations | Поддержка: полная | Используются строгие функции Ansible для работы с файлами, которые обеспечивают правильные права доступа и предотвращают повреждение данных. |
См. также
См. также
- community.crypto.parse_serial — плагин фильтра
-
Преобразует серийный номер в виде разделённого двоеточиями списка шестнадцатеричных чисел в целое число.
Примеры
---
- 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
ignore_timestamps: true
- 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 строка | Путь к сертификату. Возвращается: при изменении или успехе Пример: |
info список / элементы=строка | Информация о сертификате. Вывод Возвращается: при изменении или успехе |
type строка | Тип сертификата (хост или пользователь). Возвращается: при изменении или успехе Пример: |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/crypto/openssh_cert_module.html