l3d.auth
Rol de Ansible auth
============================== Rol de Ansible para gestionar y desplegar llaves SSH de usuarios administradores y no administradores.
Uso previsto
Este rol está diseñado para gestionar hosts Linux con las siguientes funciones. Este rol se centra principalmente en desplegar las llaves públicas SSH correctas a los usuarios adecuados, dependiendo de la configuración. Otros roles incluyen la creación de usuarios y grupos, configurar sshd, desplegar archivos de configuración (dotfiles) o instalar varios paquetes útiles.
Una lista de roles sugeridos para gestionar tu host Linux:
- do1jlr.base instalar algunos paquetes útiles
- do1jlr.users crear usuarios y gestionar sudoers
- do1jlr.auth (este)
- do1jlr.sshd configurar sshd
- do1jlr.dotfiles desplegar algunos archivos de configuración personalizados
Información útil:
Los roles listados usan las mismas variables para crear cuentas, administradores, etc. Sin embargo, los roles deben ejecutarse en el orden correcto para funcionar adecuadamente. Por ejemplo, no puedes desplegar una llave SSH pública para un usuario que no ha sido creado.
Variables
admins
(por defecto[]
):
Una lista dessh
keys permitidas para iniciar sesión comoroot
.accounts
(por defecto[]
):
Una lista de nombres de usuario que se crearán en este host, si no existen.users
(por defecto{}
):
Un diccionario de nombres de usuario que mapean a listas dessh
keys permitidas para iniciar sesión en la cuenta de usuario dada.ssh_public_key_store
(por defectossh_public_keys
):
Un camino de directorio donde los archivos de llaves públicas pueden ser encontrados por ansible.
Para variables adicionales, por favor revisa defaults/main.yml
.
Para agregar llaves SSH extra desde GitHub a un usuario, usa la configuración github_users: {}
.
Archivos
Este rol asume que las partes públicas de todas las llaves SSH requeridas
se pueden encontrar dentro del directorio ssh_public_key_store
. Los nombres de archivo deben seguir la convención: username_idalg.pub
y se emparejan
por la parte de username
.
Ejemplos
Alice y Bob pueden iniciar sesión y están autorizados para convertirse en root
con el comando sudo
en este host:
admins:
- alice
- bob
Alice, Bob y Eve pueden iniciar sesión en sus propias cuentas de usuario a través de SSH:
users:
alice:
- alice
eve:
- eve@device1
- eve@device2
Eve puede hacerlo con dos llaves SSH diferentes. Alice solo con su única llave SSH.
El directorio files/ssh_public_keys/
contiene los siguientes archivos:
alice_ed25519.pub
bob_ed25519.pub
eve@device1_ed25519.pub
eve@device2_ed25519.pub
Alice, Bob y Eve quieren ser usuarios en este host:
accounts:
- alice
- bob
- eve
Agregar llaves SSH del usuario de GitHub DO1JLR
para el usuario local L3D:
github_users:
l3d:
- do1jlr
Generar llaves SSH ed25519
ssh-keygen -t ed25519
Ansible Rolle to manage and deploy ssh keys of admin and non-admin users
ansible-galaxy install l3d.auth