community.crypto.openssh_keypair – Генерация ключей OpenSSH (приватный и публичный)
Примечание
Этот плагин входит в коллекцию community.crypto (версия 1.4.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 | Атрибуты, которые должны иметь полученный файл или директория. Чтобы получить поддерживаемые флаги, см. руководство man для 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).Если mode не указано и целевой файл не существует, по умолчанию используется umask в системе при установлении режима для вновь созданного файла.Если mode не указано и целевой файл существует, режим существующего файла будет использоваться.Указание mode – лучший способ гарантировать, что файлы создаются с правильными правами. См. CVE-2020-1736 для получения дополнительной информации. | |
| 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, если вы хотите перегенерировать пару ключей. - Поддерживает
check_mode.
Примеры
- 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 string | изменённый или успех | Комментарий сгенерированного ключа. Пример: test@comment |
| filename string | изменённый или успех | Путь к сгенерированному файлу закрытого SSH-ключа. Пример: /tmp/id_ssh_rsa |
| fingerprint string | изменённый или успех | Отпечаток ключа. Пример: SHA256:r4YCZxihVjedH2OlfjVGI6Y5xAYtdCwk8VxKyzVyYfM |
| public_key string | изменённый или успех | Открытый ключ сгенерированного закрытого SSH-ключа. Пример: ssh-rsa AAAAB3Nza(...omitted...)veL4E3Xcw== test_key |
| size integer | изменённый или успех | Размер (в битах) закрытого SSH-ключа. Пример: 4096 |
| type string | изменённый или успех | Алгоритм, используемый для генерации закрытого SSH-ключа. Пример: rsa |
Авторы
- David Kainz (@lolcube)
© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/community/crypto/openssh_keypair_module.html