Spec-Zone.ru › Ansible

Модуль community.crypto.openssh_keypair – Генерация открытых и закрытых ключей OpenSSH

Примечание

Этот модуль входит в коллекцию community.crypto (версия 2.22.1).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.crypto. Для использования этого модуля требуются дополнительные условия, см. Требования для получения подробностей.

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

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

Обзор

  • Этот модуль позволяет (пере)генерировать закрытые и открытые ключи OpenSSH. Он использует ssh-keygen для генерации ключей. Можно сгенерировать rsa, dsa, rsa1, ed25519 или ecdsa закрытые ключи.

Требования

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

  • ssh-keygen (если backend=openssh)
  • cryptography >= 2.6 (если backend=cryptography и установлен OpenSSH < 7.8)
  • cryptography >= 3.0 (если backend=cryptography и установлен OpenSSH >= 7.8)

Параметры

Параметр

Комментарии

attributes

псевдонимы: attr

строка

Атрибуты, которые должен иметь полученный объект файловой системы.

Чтобы получить поддерживаемые флаги, обратитесь к странице руководства для chattr на целевой системе.

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

Оператор = используется по умолчанию, в противном случае необходимо включить операторы + или - в строку.

backend

строка

добавлено в community.crypto 1.7.0

Выбирает между библиотекой cryptography или двоичным файлом OpenSSH opensshbin.

auto по умолчанию будет opensshbin, если двоичный файл OpenSSH не установлен или используется passphrase.

Варианты:

  • "auto" ← (по умолчанию)
  • "cryptography"
  • "opensshbin"

comment

строка

Предоставляет новый комментарий к открытому ключу.

force

логическое значение

Нужно ли перегенерировать ключ, даже если он уже существует?

Варианты:

  • false ← (по умолчанию)
  • true

group

строка

Имя группы, которая должна владеть объектом файловой системы, как это передается в команду chown.

Если не указано, используется текущая группа текущего пользователя, за исключением случая с root-пользователем, где может сохраняться предыдущая владельческая группа.

mode

любое

Разрешения, которые должен иметь полученный объект файловой системы.

Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны предоставить Ansible достаточно информации для их корректного анализа. Для согласованных результатов заключайте восьмеричные числа в кавычки (например, '644' или '1777') так, чтобы Ansible получал строку и мог самостоятельно преобразовать ее из строки в число. Добавление ведущего нуля (например, 0755) иногда работает, но может потерпеть неудачу в циклах и других обстоятельствах.

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

Начиная с Ansible 1.8, режим может быть указан в символической форме (например, u+rwx или u=rw,g=r,o=r).

Если mode не указан, а целевой объект файловой системы не существует, по умолчанию используется umask системы при установке режима для вновь созданного объекта файловой системы.

Если mode не указан, а целевой объект файловой системы существует, используется режим существующего объекта файловой системы.

Указание mode является лучшим способом гарантировать, что объекты файловой системы создаются с правильными разрешениями. См. CVE-2020-1736 для получения дополнительной информации.

owner

строка

Имя пользователя, который должен владеть объектом файловой системы, как это передается в команду chown.

Если не указано, используется текущий пользователь, за исключением случая с root-пользователем, где может сохраняться предыдущая владельческая группа.

Указание числового имени пользователя будет интерпретироваться как идентификатор пользователя, а не имя пользователя. Избегайте числовых имён пользователей, чтобы избежать этой неоднозначности.

passphrase

строка

добавлено в community.crypto 1.7.0

Пароль, используемый для расшифровки существующего закрытого ключа или шифрования вновь сгенерированного закрытого ключа.

Пароли не поддерживаются для type=rsa1.

Может быть использован только при backend=cryptography, или когда backend=auto и необходимая версия cryptography установлены.

path

путь / обязательный

Имя файлов, содержащих открытый и закрытый ключ. Файл, содержащий открытый ключ, будет иметь расширение .pub.

private_key_format

строка

добавлено в community.crypto 1.7.0

Используется при backend=cryptography, чтобы выбрать формат закрытого ключа в предоставленном path.

При установке в auto этот модуль будет соответствовать формату ключа установленной версии OpenSSH.

Для OpenSSH < 7.8 закрытые ключи будут в формате PKCS1, за исключением ключей ed25519, которые будут в формате OpenSSH.

Для OpenSSH >= 7.8 все типы закрытых ключей будут в формате OpenSSH.

Использование этого параметра при regenerate=partial_idempotence или regenerate=full_idempotence приведет к генерации новой пары ключей, если формат закрытого ключа не соответствует значению private_key_format. Однако этот модуль не будет конвертировать существующие закрытые ключи между форматами.

Варианты:

  • "auto" ← (по умолчанию)
  • "pkcs1"
  • "pkcs8"
  • "ssh"

regenerate

строка

добавлено в community.crypto 1.0.0

Позволяет настроить ситуации, в которых модуль разрешается перегенерировать закрытые ключи. Модуль всегда сгенерирует новый ключ, если целевой файл не существует.

По умолчанию ключ будет перегенерирован, если он не соответствует параметрам модуля, за исключением случаев, когда ключ не может быть прочитан или пароль не совпадает. Обратите внимание, что это изменилось для Ansible 2.10. Для Ansible 2.9 поведение было таким, как если бы был указан full_idempotence.

Если установлено never, модуль завершится ошибкой, если ключ не может быть прочитан или пароль не совпадает, и никогда не перегенерирует существующий ключ.

Если установлено fail, модуль завершится ошибкой, если ключ не соответствует параметрам модуля.

Если установлено partial_idempotence, ключ будет перегенерирован, если он не соответствует параметрам модуля. Ключ не перегенерируется, если он не может быть прочитан (поврежденный файл), защищён неизвестным паролем, или если ключ не защищён паролем, но пароль указан.

Если установлено full_idempotence, ключ будет перегенерирован, если он не соответствует параметрам модуля. Это также относится к случаям, когда ключ не может быть прочитан (повреждённый файл), защищён неизвестным паролем или если ключ не защищён паролем, но указан пароль. Убедитесь, что у вас есть бэкап при использовании этого параметра!

Если установлено always, модуль всегда перегенерирует ключ. Это эквивалентно установке force в true.

Обратите внимание, что изменение комментария и разрешений может произойти без перегенерации. Поэтому даже для never, задача может привести к изменениям.

Варианты:

  • "never"
  • "fail"
  • "partial_idempotence" ← (по умолчанию)
  • "full_idempotence"
  • "always"

selevel

строка

Часть контекста объекта файла SELinux, относящаяся к уровню.

Это атрибут MLS/MCS, иногда известный как range.

Если установлено значение _default, будет использоваться часть политики level, если она доступна.

serole

строка

Часть контекста объекта файла SELinux, относящаяся к роли.

Если установлено значение _default, будет использоваться часть политики role, если она доступна.

setype

строка

Часть контекста объекта файла SELinux, относящаяся к типу.

Если установлено значение _default, будет использоваться часть политики type, если она доступна.

seuser

строка

Часть контекста объекта файла SELinux, относящаяся к пользователю.

По умолчанию используется политика system, где это применимо.

Если установлено значение _default, будет использоваться часть политики user, если она доступна.

size

целое число

Указывает количество бит в закрытом ключе для создания. Для ключей RSA минимальный размер составляет 1024 бита, а по умолчанию используется 4096 бит. Обычно достаточно 2048 бит. Ключи DSA должны иметь ровно 1024 бита, как указано в FIPS 186-2. Для ключей ECDSA размер определяет длину ключа, выбирая один из трех размеров эллиптических кривых: 256, 384 или 521 бит. Попытка использовать длины битов, отличные от этих трех значений для ключей ECDSA, приведет к сбою этого модуля. Ключи Ed25519 имеют фиксированную длину, и размер будет проигнорирован.

state

строка

Определяет, должны ли существовать закрытый и открытый ключи или нет, выполняя действия, если состояние отличается от указанного.

Варианты:

  • "present" ← (по умолчанию)
  • "absent"

type

строка

Алгоритм, используемый для генерации закрытого ключа SSH. rsa1 предназначен для протокола версии 1. rsa1 устарел и может не поддерживаться всеми версиями ssh-keygen.

Варианты:

  • "rsa" ← (по умолчанию)
  • "dsa"
  • "rsa1"
  • "ecdsa"
  • "ed25519"

unsafe_writes

логическое

Влияет на использование атомарной операции для предотвращения повреждения данных или несогласованного чтения из целевого объекта файловой системы.

По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых объектов файловой системы, но иногда системы настроены или просто неисправны, что препятствует этому. Одним из примеров является подмонтированная файловая система Docker, которая не может быть обновлена атомарно изнутри контейнера и может быть записана только неатомарным способом.

Этот параметр позволяет Ansible перейти к небезопасным методам обновления объектов файловой системы при сбое атомарных операций (однако он не заставляет Ansible выполнять небезопасные записи).

ВАЖНО! Небезопасные записи подвержены гонкам и могут привести к повреждению данных.

Варианты:

  • false ← (по умолчанию)
  • true

Атрибуты

Атрибут

Поддержка

Описание

check_mode

Поддержка: полная

Может работать в режиме check_mode и возвращать прогноз состояния изменения без изменения целевого объекта.

diff_mode

Поддержка: полная

Вернет подробности о том, что изменилось (или, возможно, нуждается в изменении в check_mode), когда активен режим diff.

safe_file_operations

Поддержка: полная

Использует строго типизированные функции Ansible для работы с файлами, чтобы гарантировать правильные разрешения и избежать повреждения данных.

Примечания

Примечание

  • В случае повреждения или защиты паролем SSH-ключа модуль завершит работу. Установите параметр force в значение true, если нужно перегенерировать пару ключей.
  • Если предоставлен пользовательский атрибут mode, group, owner или другой атрибут файла, он будет применен к обоим файлам ключей.

Примеры

- name: Generate an OpenSSH keypair with the default values (4096 bits, rsa)
  community.crypto.openssh_keypair:
    path: /tmp/id_ssh_rsa

- name: Generate an OpenSSH keypair with the default values (4096 bits, rsa) and encrypted private key
  community.crypto.openssh_keypair:
    path: /tmp/id_ssh_rsa
    passphrase: super_secret_password

- name: Generate an OpenSSH rsa keypair with a different size (2048 bits)
  community.crypto.openssh_keypair:
    path: /tmp/id_ssh_rsa
    size: 2048

- name: Force regenerate an OpenSSH keypair if it already exists
  community.crypto.openssh_keypair:
    path: /tmp/id_ssh_rsa
    force: true

- name: Generate an OpenSSH keypair with a different algorithm (dsa)
  community.crypto.openssh_keypair:
    path: /tmp/id_ssh_dsa
    type: dsa

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

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

Ключ

Описание

comment

строка

Комментарий сгенерированного ключа.

Возвращается: changed или success

Пример: "test@comment"

filename

строка

Путь к сгенерированному файлу SSH-приватного ключа.

Возвращается: changed или success

Пример: "/tmp/id_ssh_rsa"

fingerprint

строка

Отпечаток ключа.

Возвращается: changed или success

Пример: "SHA256:r4YCZxihVjedH2OlfjVGI6Y5xAYtdCwk8VxKyzVyYfM"

public_key

строка

Открытый ключ сгенерированного SSH-приватного ключа.

Возвращается: changed или success

Пример: "ssh-rsa AAAAB3Nza(...omitted...)veL4E3Xcw=="

size

целое число

Размер (в битах) SSH-приватного ключа.

Возвращается: changed или success

Пример: 4096

type

строка

Алгоритм, используемый для генерации SSH-приватного ключа.

Возвращается: changed или success

Пример: "rsa"

Авторы

  • David Kainz (@lolcube)

Ссылки на сборку

  • Система отслеживания задач
  • Репозиторий (исходники)
  • Задайте вопрос (криптография)
  • Задайте вопрос (ACME)
  • Отправить сообщение об ошибке
  • Запросить новую функцию
  • Связь

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

Spec-Zone.ru

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