Servidor SSH que comprueba claves públicas de otra fuente

Servidor SSH que comprueba claves públicas de otra fuente

En una conexión ssh con autenticación de clave el usuario envía el ID de la clave pública que desea utilizar. Luego, el servidor verifica el archivo Authorized_keys en busca de la clave pública.

Me gustaría que el servidor no busque esa ID en el archivo autorizado_keys, sino que use el nombre de usuario para recuperar la clave de otra fuente (por ejemplo, una base de datos, otro archivo, un servidor remoto, etc.)

¿Es posible hacer eso?

Respuesta1

Para cambiar elruta de archivo, puede especificar elArchivo de claves autorizadasopción en sshd_config (suponiendo que el servidor ejecute OpenSSH). Puede proporcionar varias rutas, ya sea relativas al directorio de inicio del usuario o rutas absolutas expandiéndose %ual nombre de usuario.

Por ejemplo, para mantener la ubicación predeterminada de claves_autorizadas yagregarun archivo en /etc:

AuthorizedKeysFile  .ssh/authorized_keys  /etc/ssh/users/%u.txt

Para usar uncomando externo, si el servidor utiliza OpenSSH 6.2 o posterior, puede especificarComando de claves autorizadasen el archivo sshd_config del servidor, apuntando a un programa o script personalizado.

El programa se ejecutará en cada inicio de sesión, recibirá un nombre de usuario como parámetro de línea de comando y deberá generar una lista de claves para ese usuario (usando el mismo formato que Authorized_keys) a través de stdout.

Por ejemplo, si está utilizando LDAP, elSSSDEl cliente LDAP ya incluye una herramienta sss_ssh_authorizedkeyspara recuperar claves del atributo sshPublicKey del usuario.

AuthorizedKeysCommand /usr/bin/sss_ssh_authorizedkeys
AuthorizedKeysCommandUser nobody

información relacionada