Permitir que os usuários façam ssh para um usuário específico por meio de ldap e chaves públicas armazenadas

Permitir que os usuários façam ssh para um usuário específico por meio de ldap e chaves públicas armazenadas

Recentemente configurei o gitolite, onde os usuários acessam o repositório git com o usuário "gitolite" através de ssh.

Agora gostaria de integrar isso ao LDAP. Cada usuário possui pubkey no LDAP e se ele tiver objectClass "git", ele poderá acessar o usuário "gitolite" através do ssh.

Sei que é possível armazenar chaves públicas em LDAP, não tenho certeza se é possível permitir autenticação em conta "gitosis" baseada em objectClass.

EDITAR:Para esclarecer, com objectClass git, o usuário “foobar” seria capaz de fazer login como “gitolite” através de ssh

Responder1

O autor degitolitaadicionou alguns recursos que ajudam a oferecer suporte a armazenamentos de chaves externos e informações de associação a grupos. Procure oREGISTRO DE ALTERAÇÕESpara LDAP.

Para usar um armazenamento de chaves externo, seusshdprecisa suportar o .ssh/authorized_keysarquivo normal (este é o arquivo que informasshdpara corrercomando gl-authquando umgitolitausuário faz login).

  1. Desative a geração normal de authkey (aquela baseada keydirno gitolite-adminrepositório):
    $GL_NO_SETUP_AUTHKEYS = 0;no seu arquivo .gitolite.rc.
  2. Periodicamente (sempre que uma chave é alterada, um usuário é adicionado, etc.):
    1. Extraia todas as chaves SSH do seu armazenamento de chaves em algum diretório temporário e conveniente (use os mesmos nomes para os arquivos de chave como se estivessem no arquivo normal baseado em repositório keydir).
    2. Corrergl-setup-authkeysTergitolitareconstrua sua parte do authorized_keysarquivo.

Vera mensagem de commit que introduziugl-setup-authkeyspara descrição do próprio autor.

Usar grupos de usuários definidos externamente é um pouco mais complicado, pois geralmente envolve a interposição de outro programa entresshdecomando gl-auth(as associações ao grupo são passadas como argumentos extras paracomando gl-auth). Ver“grupos de usuários e ferramentas LDAP/semelhantes”.

Responder2

Se você quiser tentar algo um pouco estranho, faça .ssh/authorized_keys2 um canal nomeado e escreva um script/programa que consulte o LDAP, execute a filtragem adequada e, em seguida, cospe o conteúdo de uma chaveauthorized_keys. Sugiroauthorized_keys2, pois provavelmente você já está usandoauthorized_keys.

Você teria que ter cuidado com o script (observar o bloqueio de gravações, saber quando fazer uma nova consulta, etc.), mas ele lhe daria a resposta certa sempre, se você fizesse certo.

informação relacionada