auth
Роль ansible для аутентификации
Ansible роль для управления и развертывания ssh-ключей административных и неадминистративных пользователей.
Предназначение
Эта роль создана для управления linux-хостами с определенными ролями. Она, в основном, фокусируется на развертывании правильных ssh публичных ключей для нужных пользователей в зависимости от конфигурации. Другие роли создают пользователей и группы, конфигурируют sshd, развертывают dotfiles или устанавливают различные полезные пакеты.
Список рекомендуемых ролей для управления вашим linux-хостом:
- do1jlr.base установка нескольких полезных пакетов
- do1jlr.users создание пользователей и управление sudoers
- do1jlr.auth (эта роль)
- do1jlr.sshd конфигурация sshd
- do1jlr.dotfiles развертывание различных dotfiles
Полезно знать:
Указанные роли используют одни и те же переменные для создания учетных записей, администраторов и т.д. Но роли должны выполняться в правильном порядке, чтобы работать корректно. Например, вы не можете развернуть ssh публичный ключ для пользователя, который еще не создан.
Переменные
admins
(по умолчанию[]
):
Списокssh
ключей, разрешенных для входа какroot
.accounts
(по умолчанию[]
):
Список имен пользователей, которые будут созданы на этом хосте, если они не существуют.users
(по умолчанию{}
):
Словарь имен пользователей, соответствующий спискамssh
ключей, разрешенных для входа в соответствующий пользовательский аккаунт.ssh_public_key_store
(по умолчаниюssh_public_keys
):
Путь к директории, где файлы публичных ключей могут быть найдены ansible.
Для дополнительной информации о переменных посмотрите в defaults/main.yml
!
Чтобы добавить дополнительные SSH ключи из GitHub к пользователю, используйте настройки github_users: {}
Файлы
Эта роль предполагает, что публичные части всех необходимых ssh
ключей находятся в директории ssh_public_key_store
. Названия файлов должны следовать следующей конвенции: username_idalg.pub
, где username
является частью имени.
Примеры
Алиса и Боб могут войти в систему и получить право на root
с помощью команды sudo
на этом хосте:
admins:
- alice
- bob
Алиса, Боб и Ева могут войти в свои учетные записи через ssh:
users:
alice:
- alice
eve:
- eve@device1
- eve@device2
Ева может сделать это с двумя разными ssh
ключами. Алиса — только со своим единственным SSH ключом.
В директории files/ssh_public_keys/
находятся следующие файлы:
alice_ed25519.pub
bob_ed25519.pub
eve@device1_ed25519.pub
eve@device2_ed25519.pub
Алиса, Боб и Ева хотят быть пользователями на этом хосте:
accounts:
- alice
- bob
- eve
Добавляем ssh ключи от пользователя GitHub DO1JLR
для локального пользователя L3D
github_users:
l3d:
- do1jlr
Создание ed25519 SSH ключей
ssh-keygen -t ed25519
Ansible Rolle to manage and deploy ssh keys of admin and non-admin users
ansible-galaxy install roles-ansible/ansible_role_auth