community.crypto.openssh_keypair – Генерация открытых и закрытых ключей OpenSSH.
Примечание
Этот плагин входит в коллекцию community.crypto (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install community.crypto.
Для использования в плейбуке укажите: community.crypto.openssh_keypair.
Описание
- Этот модуль позволяет (повторно) генерировать открытые и закрытые ключи OpenSSH. Он использует ssh-keygen для генерации ключей. Можно сгенерировать
rsa,dsa,rsa1,ed25519илиecdsaзакрытые ключи.
Требования
Ниже перечислены требования к хосту, на котором выполняется этот модуль.
- ssh-keygen
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| attributes строка добавлен в версии 2.3 ansible.builtin | Атрибуты, которые должны иметь результирующий файл или директория. Для получения поддерживаемых флагов обратитесь к справке по chattr на целевой системе. Эта строка должна содержать атрибуты в том же порядке, что и в выводе lsattr. Оператор = по умолчанию, в противном случае необходимо включить операторы + или - в строку.псевдонимы: attr | |
| comment строка | Предоставляет новый комментарий для открытого ключа. | |
| force логическое значение |
| Ключ должен быть сгенерирован заново, даже если он уже существует |
| group строка | Имя группы, которая должна владеть файлом/директорией, как это делается в команде chown. | |
| mode сырой | Разрешения, которые должен иметь результирующий файл или директория. Для тех, кто привык к /usr/bin/chmod, помните, что режимы фактически являются восьмеричными числами. Вы должны либо добавить ведущую ноль, чтобы интерпретатор YAML Ansible понимал, что это восьмеричное число (например, 0644 или 01777) или заключить его в кавычки (например, '644' или '1777') чтобы Ansible получил строку и мог выполнить преобразование из строки в число.Если Ansible получит число без одного из этих правил, в результате получится десятичное число, что приведет к нежелательным результатам. Начиная с Ansible 1.8, режим может быть задан в символической форме (например, u+rwx или u=rw,g=r,o=r). | |
| owner строка | Имя пользователя, который должен владеть файлом/директорией, как это делается в команде chown. | |
| path путь / обязательно | Имя файлов, содержащих открытый и закрытый ключи. Файл, содержащий открытый ключ, будет иметь расширение .pub. | |
| regenerate строка добавлен в 1.0.0 community.crypto |
| Позволяет настроить ситуации, в которых модуль разрешено повторно генерировать закрытые ключи. Модуль всегда сгенерирует новый ключ, если целевой файл не существует. По умолчанию ключ будет сгенерирован заново, если он не соответствует параметрам модуля, за исключением случаев, когда ключ не может быть прочитан или пароль не совпадает. Обратите внимание, что это изменилось для Ansible 2.10. Для Ansible 2.9 поведение было таким же, как если бы был задан full_idempotence. Если установлено значение never, модуль завершится с ошибкой, если ключ не может быть прочитан или пароль не совпадает, и никогда не будет генерировать существующий ключ.Если установлено значение fail, модуль завершится с ошибкой, если ключ не соответствует параметрам модуля.Если установлено значение partial_idempotence, ключ будет сгенерирован заново, если он не соответствует параметрам модуля. Ключ не будет сгенерирован заново, если он не может быть прочитан (поврежденный файл), ключ защищен неизвестным паролем или когда ключ не защищен паролем, но пароль указан.Если установлено значение full_idempotence, ключ будет сгенерирован заново, если он не соответствует параметрам модуля. Это также относится к случаям, когда ключ не может быть прочитан (поврежденный файл), ключ защищен неизвестным паролем или когда ключ не защищен паролем, но пароль указан. Убедитесь, что у вас есть резервная копия при использовании этого варианта!Если установлено значение always, модуль всегда будет повторно генерировать ключ. Это эквивалентно установке force в yes. Обратите внимание, что изменение комментария и разрешений может быть выполнено без перегенерации. Поэтому даже при never, задача может привести к изменениям. |
| 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 строка |
| Определяет, должны ли существовать закрытый и открытый ключи или нет, предпринимая действия, если состояние отличается от указанного. |
| type строка |
| Алгоритм, используемый для генерации закрытого ключа SSH. rsa1 предназначен для протокола версии 1. rsa1 устарел и может не поддерживаться всеми версиями ssh-keygen. |
| unsafe_writes логическое значение добавлен в 2.2 ansible.builtin |
| Влияние на использование атомарных операций для предотвращения повреждения данных или несогласованного чтения из целевого файла. По умолчанию этот модуль использует атомарные операции для предотвращения повреждения данных или несогласованного чтения из целевых файлов, но иногда системы настроены или просто не работают так, как ожидается, что мешает этому. Один из примеров - смонтированные в Docker файлы, которые не могут быть обновлены атомарно изнутри контейнера и могут быть записаны только ненадёжным образом. Этот параметр позволяет Ansible перейти к небезопасным методам обновления файлов, когда атомарные операции не удаются (однако, он не заставляет Ansible выполнять небезопасные записи). ВАЖНО! Небезопасные записи подвержены проблемам гонок и могут привести к повреждению данных. |
Примечания
Примечание
- В случае повреждения или защиты SSH ключа паролем, модуль завершится с ошибкой. Установите параметр force в
yesесли хотите сгенерировать пару ключей заново.
Примеры
- 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 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 строка | изменено или успех | Комментарий сгенерированного ключа Пример: test@comment |
| filename строка | изменено или успех | Путь к сгенерированному файлу закрытого SSH-ключа Пример: /tmp/id_ssh_rsa |
| fingerprint строка | изменено или успех | Отпечаток ключа. Пример: SHA256:r4YCZxihVjedH2OlfjVGI6Y5xAYtdCwk8VxKyzVyYfM |
| public_key строка | изменено или успех | Открытый ключ сгенерированного закрытого SSH-ключа Пример: ssh-rsa AAAAB3Nza(...omitted...)veL4E3Xcw== test_key |
| size целое число | изменено или успех | Размер (в битах) закрытого SSH-ключа Пример: 4096 |
| type строка | изменено или успех | Алгоритм, используемый для генерации закрытого SSH-ключа Пример: rsa |
Авторы
- 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_keypair_module.html