authorized_key - Добавление или удаление SSH открытого ключа
Описание
- Добавляет или удаляет SSH открытые ключи для определённых учётных записей пользователей
Параметры
| параметр | обязательный | значение по умолчанию | допустимые значения | комментарии |
|---|---|---|---|---|
| comment (добавлен в 2.4)
| нет | None | Изменить комментарий к открытому ключу. Перезапись комментария полезна в случаях, таких как извлечение его из GitHub или GitLab. Если комментарий не указан, существующий комментарий сохранится. | |
| exclusive (добавлен в 1.9)
| нет | no |
| Удалить все другие не указанные ключи из файла authorized_keys. Несколько ключей можно указать в одном значении типа key, разделяя их символами новой строки.Этот параметр не учитывает циклы, поэтому при использовании with_, он будет эксклюзивным для каждой итерации цикла. Если вы хотите иметь несколько ключей в файле, необходимо передать их все в key в одной партии, как указано выше. |
| key | да | Открытый SSH-ключ(и) в виде строки или (с версии 1.9) URL (https://github.com/username.keys) | ||
| key_options (добавлен в 1.4)
| нет | Строка SSH-параметров ключа, которая будет добавлена перед ключом в файл authorized_keys | ||
| manage_dir | нет | да |
| Управлять ли этой модулю директорией файла authorized_keys. При установке, модуль создаст директорию, а также установит владельца и права доступа к существующей директории. Убедитесь, что установлено manage_dir=no, если вы используете альтернативную директорию для authorized_keys, как установлено path, так как вы можете заблокировать себя от доступа к SSH.См. пример ниже. |
| path | нет | (homedir)+/.ssh/authorized_keys | Альтернативный путь к файлу authorized_keys | |
| state | нет | present |
| Нужно ли заданный ключ (с заданными key_options) в файле |
| user | да | Имя пользователя на удалённом хосте, файл authorized_keys которого будет изменён | ||
| validate_certs (добавлен в 2.1)
| нет | да |
| Это относится только к использованию https-URL в качестве источника ключей. Если установлено значение no, сертификаты SSL не будут проверены.Это должно быть установлено в no только на сайтах, контролируемых лично, которые используют самоподписанные сертификаты, так как это позволяет избежать проверки источника сайта.До версии 2.1 код работал так, как будто это было установлено в yes. |
Примеры
- name: Set authorized key took from file
authorized_key:
user: charlie
state: present
key: "{{ lookup('file', '/home/charlie/.ssh/id_rsa.pub') }}"
- name: Set authorized key took from url
authorized_key:
user: charlie
state: present
key: https://github.com/charlie.keys
- name: Set authorized key in alternate location
authorized_key:
user: charlie
state: present
key: "{{ lookup('file', '/home/charlie/.ssh/id_rsa.pub') }}"
path: /etc/ssh/authorized_keys/charlie
manage_dir: False
- name: Set up multiple authorized keys
authorized_key:
user: deploy
state: present
key: '{{ item }}'
with_file:
- public_keys/doe-jane
- public_keys/doe-john
- name: Set authorized key defining key options
authorized_key:
user: charlie
state: present
key: "{{ lookup('file', '/home/charlie/.ssh/id_rsa.pub') }}"
key_options: 'no-port-forwarding,from="10.0.1.1"'
- name: Set authorized key without validating the TLS/SSL certificates
authorized_key:
user: charlie
state: present
key: https://github.com/user.keys
validate_certs: False
- name: Set authorized key, removing all the authorized key already set
authorized_key:
user: root
key: '{{ item }}'
state: present
exclusive: True
with_file:
- public_keys/doe-jane
- name: Set authorized key for user ubuntu copying it from current user
authorized_key:
user: ubuntu
state: present
key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"
Возвращаемые значения
Общие возвращаемые значения описаны здесь Возвращаемые значения, следующие поля уникальны для этого модуля:
| имя | описание | возвращается | тип | пример |
|---|---|---|---|---|
| exclusive | Ключ был принудительно установлен как эксклюзивный или нет. | успех | boolean | False |
| key | Ключ, с которым работал модуль. | успех | строка | https://github.com/user.keys |
| key_option | Параметры ключа, связанные с ключом. | успех | строка | None |
| keyfile | Путь к файлу открытого ключа. | успех | строка | /home/user/.ssh/authorized_keys |
| manage_dir | Управлял ли этот модуль директорией файла открытого ключа. | успех | boolean | True |
| path | Альтернативный путь к файлу authorized_keys. | успех | строка | None |
| state | Нужно ли заданный ключ (с заданными key_options) должен быть в файле | успех | строка | present |
| unique | Является ли ключ уникальным | успех | boolean | False |
| user | Имя пользователя на удалённом хосте, файл authorized_keys которого будет изменён | успех | строка | user |
| validate_certs | Это относится только к использованию https-URL в качестве источника ключей. Если установлено значение no, сертификаты SSL не будут проверены. | успех | boolean | True |
Статус
Этот модуль помечен как превью, что означает, что его интерфейс не гарантируется обратной совместимости.
Информация о поддержке
Для получения дополнительной информации о поддержке этого модуля компанией Red Hat, обратитесь к этому knowledge base article<https://access.redhat.com/articles/rhel-top-support-policies>
Для помощи в разработке модулей, если у вас есть желание, прочтите Информацию о сообществе и участии в разработке, Тестирование Ansible и Разработка модулей.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/authorized_key_module.html