GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Gestión de claves SSH con privacyIDEA


por weinstock @ pixabay

En este tutorial, mostraré cómo puede administrar sus claves SSH para todos sus servidores y diferentes cuentas de usuario. Esto es importante si tiene más de una clave SSH y es aún más importante si es responsable de muchos usuarios diferentes con diferentes claves SSH. ¿Todavía sabe, las claves de quién están ubicadas en qué servidores? ¿Qué harás si tienes que revocar las claves del usuario?

Utilizaremos privacyIDEA como sistema para gestionar las claves SSH. Originalmente, privacyIDEA es un sistema para administrar tokens de contraseña de un solo uso. Pero hace un tiempo se mejoró con un nuevo concepto para que pueda usarse para administrar muchos tipos diferentes de elementos de autenticación, en este caso, claves SSH. (Di una charla alemana sobre esto en la conferencia alemana OpenRheinRuhr).

Requisitos

Supongo que ha instalado un sistema de privacidad IDEA y ha conectado su base de datos de usuario. Puede hacerlo fácilmente siguiendo este tutorial que le proporcionará un sistema similar a un dispositivo basado en Ubuntu LTS.

Lo que haremos ahora es

  1. subir claves SSH para los usuarios,
  2. configure qué clave SSH se puede usar en qué servidor SSH
  3. y finalmente adapte la configuración SSH en los servidores SSH, de modo que las claves SSH administradas por privacyIDEA se utilicen para autenticarse en el servidor SSH.

Subir claves SSH

Primero necesitamos cargar las claves SSH de los usuarios.

Tenga en cuenta: Solo necesitamos subir la clave pública SSH. ¡Nunca cargues una clave privada!

Al cargar una clave SSH, un nuevo objeto token de tipo clave SSH es creado. Por el momento solo el administrador puede cargar la clave SSH de un usuario. El administrador debe iniciar sesión y seleccionar el usuario correspondiente.

Luego haga clic en el botón Inscribirse y seleccione el tipo Token SSH y copie y pegue la clave pública SSH.

La descripción del token se completará automáticamente con el comentario de la clave SSH.

Ahora puedes cambiar al Token view y puede ver el nuevo token creado de tipo sshkey

Asignar clave SSH al servidor SSH

La idea de usar tokens para ciertas máquinas se describe originalmente en github y también en la documentación en línea.

Debe definir qué token puede autenticarse en qué aplicación y en qué máquina. (De esta manera también es posible la autenticación fuera de línea con LUKS) Esto se puede hacer en las Máquinas ver.

En privacyIDEA 1.5 también necesita definir la máquina (el servidor SSH) con la dirección IP. Esto cambiará en privacyIDEA 2.x.

De esta manera, creamos una definición de máquina que dice que el token ssh SSHK00018FD9 se puede usar para iniciar sesión a través de SSH en el servidor 172.16.200.1. Si la clave de opción se deja en blanco, este token SSH se puede usar para iniciar sesión como usuario raíz. También podría ingresar una opción "usuario" con el nombre de usuario como valor para poder iniciar sesión como otro usuario.

Configurar servidor SSH

Ahora el servidor SSH necesita saber que la clave, que se definió centralmente en privacyIDEA, se puede usar para iniciar sesión a través de SSH. Hay dos formas alternativas de lograr esto.

Podemos usar saltstack para distribuir las claves SSH a todos los servidores SSH. Para esto, necesitamos configurar y ejecutar saltstack, lo que nos genera un poco de sobrecarga. Es por eso que elegimos la segunda alternativa en este tutorial.

La segunda alternativa utiliza la clave de configuración SSH AuthorizedKeysCommand . Esto se puede usar en /etc/ssh/sshd_config para definir un comando, que se ejecuta cada vez que alguien intenta iniciar sesión a través de SSH. Dicho comando debe tomar el nombre de usuario como parámetro y debe devolver una lista de claves SSH permitidas.

Para lograr esto, usamos el comando privacyidea-authorizedkeys que viene con el cliente de administración de privacyidea. Por lo tanto, debe instalar el cliente de administración de privacyidea en cada uno de sus servidores SSH. Puede hacer esto utilizando el paquete de ubuntu listo para usar desde Launchpad o el paquete de python desde el índice de paquetes de Python.

Para instalar el cliente de administración de privacyidea en su sistema principal, ejecute:

pip install privacyideaadm

claves autorizadas de idea de privacidad no se le permite tomar ningún parámetro adicional excepto el nombre de usuario. Es por eso que necesita crear un archivo de configuración /etc/privacyidea/authorizedkeyscommand que se ve así:

[Default]
url = https://your.privacyidea.server
admin = low_rights_admin
adminrealm = admin_realm
password = secret

Asegúrese de restringir los derechos de acceso de este archivo. En un entorno productivo, también debe asegurarse de que el administrador de tokens mencionado en este archivo de configuración no pueda realizar ninguna tarea adicional, como eliminar o crear tokens.

Si todo está configurado correctamente, debería poder ejecutar

privacyidea-authorizedkeys root

...y debería ver la clave pública ssh que cargó en privacyIDEA.

Finalmente, debe reconfigurar el daemin SSH y reiniciarlo. Su /etc/ssh/sshd_config debería tener una sección que se vea así:

AuthorizedKeysCommand /usr/bin/privacyidea-authorizedkeys
# You also should run the command with lower privileges.
# The low_priv_user needs to have read access to /etc/privacyidea/authorizedkeyscommand.
# AuthorizedKeysCommandUser low_priv_user

¡Autenticar!

Después de reiniciar el demonio SSH, debería poder iniciar sesión a través de SSH con la clave SSH cargada. Tan pronto como elimine el token SSH o incluso deshabilite el token SSH en privacyIDEA, el usuario ya no podrá iniciar sesión con esta clave SSH.

De esta manera, tiene control total sobre todas las claves de todos sus usuarios. Puede deshabilitar una clave SSH en un punto central y un usuario ya no podrá iniciar sesión en ningún servidor SSH.


Ubuntu
  1. Cómo utilizar claves SSH con Plesk

  2. Cómo generar un par de claves SSH (con ejemplos)

  3. SSH:generar y trabajar con claves ssh

  4. ¿Error de clave Ssh no válida en Juju cuando se usa con Maas?

  5. cómo actualizar homebrew con Cron en Mac os

Cómo configurar claves SSH en Ubuntu 20.04

Gestión de paquetes de Ubuntu con apt

Cómo usar una clave SSH con usuarios no root

Genere claves RSA con SSH usando PuTTYgen

Inicie sesión en un servidor Linux con una clave privada SSH en un cliente de Windows

Inicie sesión con una clave privada SSH en Linux y macOS