l3d.sshd
Servidor OpenSSH
Rol de Ansible para configurar el Servidor OpenSSH SSHD
.
El objetivo principal de este rol es gestionar el archivo sshd.conf y algunas partes adicionales, como desplegar las claves de host SSH definidas en la ruta configurada.
Consejo Profesional
Usa criptografía de curva elíptica para tus claves SSH:
ssh-keygen -t ed25519
Los valores predeterminados de este rol solo permitirán claves ed25519. Pero puedes cambiarlos, por supuesto, si lo deseas.
Uso previsto
Este rol está diseñado para gestionar hosts Linux con los siguientes roles. Este rol se centra principalmente en una buena configuración de sshd y puede definir qué usuarios pueden conectarse a través de SSH y qué tipos de claves SSH están permitidos. Otros roles distribuyen claves públicas SSH, crean usuarios y configuran permisos sudo, despliegan archivos de configuración o instalan una serie de 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 desplegar claves públicas SSH
- do1jlr.sshd (este)
- do1jlr.dotfiles desplegar algunos archivos de configuración
Bueno saber:
Los roles listados utilizan las mismas variables para crear cuentas, administradores, etc. Pero los roles deben ejecutarse en el orden correcto para funcionar adecuadamente. Por ejemplo, no puedes desplegar una clave pública SSH para un usuario que no ha sido creado.
Algunas variables explicadas
Recuerda: Echa un vistazo a defaults/main.yml
para todas las variables posibles.
Puerto SSH
El puerto de OpenSSH está definido con la variablesshd__port: 22
. Cambia esto si lo deseas.Usuarios y Grupos Permitidos
Los usuarios predeterminados que pueden iniciar sesión provienen de la listausers: {}
.
La misma variableusers: {}
se utiliza en otros roles SSH recomendados.
Un ejemplo para permitir el inicio de sesión para los usuarios y grupos llamadosl3d
yottojo
es:
users:
l3d:
- l3d
ottojo:
- ottojo@uni
- ottojo@home
Inicio de sesión SSH a través de contraseña
La autenticación por contraseña SSH está configurada en falso mediantesshd__password_authentication: false
. Esto no permitirá que uses tu contraseña para iniciar sesión a través de SSH.Gestionar Tipos de Claves SSH
Por defecto, este rol configura qué tipos de claves SSH están permitidos para iniciar sesión. Si no deseas definir eso, cambia la variablesshd__manage_key_types: true
.Definir tipos de claves SSH permitidas
Los tipos de claves SSH permitidos se definen con esta lista. Algunos de ellos están comentados.
Ten en cuenta que por defecto solo se permiten clavesed25519
. Mantén esto en mente si estás utilizando una clave RSA.
sshd__key_types:
- 'ed25519'
# - 'rsa'
# - 'ecdsa'
# - 'dsa' # (¡no usar!)
Configuraciones Avanzadas de Algoritmos SSH
También puedes definir los algoritmos de clave y Kex utilizados aquí. Para los valores predeterminados y algunos ejemplos para las variablessshd__key_algorithmus
ysshd__kex_algorithmus
, consultadefaults/main.yml
. Puedes desactivarlo estableciendosshd__manage_key_algorithmus
ysshd__manage_kex_algorithmus
enfalse
.Forzar nuevas características de SSH
Si sabes que utilizas una versión de SSH>8
, puedes definirlo opcionalmente contrue/false
con la variablesshd__version_is_above_eight
.
Archivos
La tarea principal de este rol es configurar el archivo sshd.conf
.
Referencias
Pruebas
Este rol se prueba con algunas pruebas de linting. Lamentablemente, no sé cómo ejecutar este rol en un contenedor Docker porque se involucra systemd... Si tienes ideas para mejorar las pruebas, por favor mándame un mensaje, abre un problema o una solicitud de extracción. Si deseas saber más sobre nuestras pruebas, echa un vistazo al mercado de GitHub.
estado de prueba | Mercado de GitHub |
---|---|
publicar-rol-ansible-en-galaxy | |
yamllint-github-action | |
acción-ansible-lint |
Manage your SSH Server - and deploy a good sshd configuration
ansible-galaxy install l3d.sshd