Autenticação OpenSSH e PAM usando uma chave pública

4

Eu estou procurando uma maneira de autenticar usuários usando uma chave pública que é armazenada em um banco de dados (MongoDB). Perguntas semelhantes geralmente resultaram com uma sugestão para instalar uma versão corrigida do OpenSSH ( link ) que autentica em um db (GitHub estão usando uma versão corrigida do OpenSSH).

Eu vi que existe um módulo PAM para autenticar via MySQL, mas ele assume uma autenticação de nome de usuário / senha. Eu queria saber se eu posso usar algum tipo de módulo PAM para autenticar usando uma chave pública contra um servidor.

EDITADO: Eu preciso disso para um servidor git onde todos os usuários estarão se conectando através do nome de usuário 'git'. Não haverá nome de usuário específico por usuário.

    
por Gilad Novik 01.05.2014 / 17:46

2 respostas

4

A autenticação de chave pública SSH não é implementada via PAM. Na verdade, contorna a pilha PAM auth (mas apenas auth ), algo que muitos administradores ignoram.

Bloqueio de versões que suportam AuthorizedKeyCommand (como mencionado na resposta de Florin), a única maneira de estender a autenticação de chave pública SSH é corrigir o daemon (pesquisas de chave pública) ou o cliente (pesquisas de chave privada).

Existem várias maneiras de estender suas opções de autenticação via PAM, mas a modificação de como a autenticação de chave pública SSH funciona não é uma delas.

    
por 01.05.2014 / 22:59
4

AuthorizedKeysCommand é o que você precisa. Isso exigirá uma nova versão decente do OpenSSH disponível e você escreverá um comando wrapper que obtém a chave do banco de dados MongoDB, mas não exigirá que você remenda o OpenSSH.

E um link com mais detalhes sobre AuthorizedKeysCommand .

    
por 01.05.2014 / 23:34