Permitir a los usuarios enviar ssh a un usuario específico a través de ldap y claves públicas almacenadas

Permitir a los usuarios enviar ssh a un usuario específico a través de ldap y claves públicas almacenadas

Recientemente configuré gitolite, donde los usuarios acceden al repositorio de git con el usuario "gitolite" a través de ssh.

Ahora me gustaría integrar eso en LDAP. Cada usuario tiene una clave pública en LDAP y si tiene la clase de objeto "git", podrá acceder al usuario "gitolite" a través de ssh.

Sé que es posible almacenar claves públicas en LDAP, no estoy seguro de si es posible permitir la autenticación en una cuenta "gitosis" basada en objectClass.

EDITAR:Para aclarar, con objectClass git, el usuario "foobar" podría iniciar sesión como "gitolite" a través de ssh

Respuesta1

el autor degitolitaha agregado algunas funciones que ayudan a admitir almacenes de claves externos e información de membresía de grupos. buscar elREGISTRO DE CAMBIOSpara LDAP.

Para utilizar una clave externa, almacene susshdnecesita admitir el .ssh/authorized_keysarchivo habitual (este es el archivo que dicesshdcorrercomando gl-authcuando ungitolitael usuario inicia sesión).

  1. Desactive la generación normal de claves de autenticación (la que se basa en keydirel gitolite-adminrepositorio):
    $GL_NO_SETUP_AUTHKEYS = 0;en su archivo .gitolite.rc.
  2. Periódicamente (cada vez que se cambia una clave, se agrega un usuario, etc.):
    1. Extraiga todas las claves SSH de su almacén de claves en algún directorio temporal conveniente (use los mismos nombres para los archivos de claves que si estuvieran en el repositorio normal keydir).
    2. Corrergl-setup-claves de autenticacióntenergitolitareconstruir su parte del authorized_keysarchivo.

Verel mensaje de confirmación que introdujogl-setup-claves de autenticaciónpara la propia descripción del autor.

Usar grupos de usuarios definidos externamente es un poco más complicado ya que generalmente implica interponer otro programa entresshdycomando gl-auth(las membresías del grupo se pasan como argumentos adicionales paracomando gl-auth). Ver“grupos de usuarios y LDAP/herramientas similares”.

Respuesta2

Si desea probar algo un poco fuera de lo común, haga que .ssh/authorized_keys2 sea una canalización con nombre y escriba un script/programa que consulte LDAP, realice el filtrado adecuado y luego escupe el contenido de las claves de autorizado_keys. Sugiero Authorized_keys2 ya que probablemente ya estés usando Authorized_keys.

Tendría que tener cuidado con el script (estar atento a las escrituras bloqueadas, saber cuándo realizar una nueva consulta, etc.), pero siempre le daría la respuesta correcta si lo hiciera bien.

información relacionada