Sistema de gerenciamento centralizado para chaves SSH?

27

Estamos procurando mudar para o gerenciamento de logins baseados em chave SSH e nos questionar se existe algum sistema de gerenciamento de chaves que nos permita gerenciar centralmente as chaves de acesso em todo o mundo.

O sistema deve, idealmente, permitir a emissão de chaves por cliente e revogá-las, se necessário, atualizando as chaves da máquina do servidor em tempo real.

Alguém sabe de tal sistema, seja comercial ou de código aberto?

NOTA: Para esclarecer, precisamos do gerenciamento de chaves para uma grande quantidade de servidores em nuvem (semelhante ao EC2) e uma pequena quantidade de usuários do serviço. Acho que o patch LDAP sugerido abaixo pode ser o caminho a seguir.

    
por SyRenity 23.08.2011 / 22:06

5 respostas

8

Existem muitas maneiras de fazer isso. O armazenamento de chaves LDAP foi mencionado algumas vezes, e eu fiz isso e funciona, até onde ele funciona. O LDAP tem suas curiosidades de gerenciamento, que requerem algum aprendizado.

Sou um grande fã de servidores simples e robustos que têm dependências de rede externas mínimas para coisas simples, como autenticar administradores, por isso prefiro uma estratégia de distribuição de chaves SSH muito mais robusta - tenho o sistema de gerenciamento de configuração isto. A chave pública de todos é mantida no sistema de gerenciamento de configuração e, sempre que a pessoa precisar fazer o login, sua chave será adicionada. O sistema de configuração também sabe remover chaves que não são especificadas, então quando alguém sai ou suas mudanças de chave, é uma simples questão de remover a configuração da chave e na próxima execução do sistema de configuração, a chave é removida.

    
por 24.08.2011 / 00:19
23

Os pares de chaves devem ser gerados pelo usuário.

O usuário mantém a metade privada - você nunca deve vê-lo. Se você tem a chave privada de alguém em um formulário onde possa ler / usar, você está fazendo a segurança errada.

A metade pública é dada a você (por qualquer mecanismo que você queira: formulário da Web, e-mail, "dê-a-a-mim-em-um-CD") para ser centralizada da maneira que você quiser. Alguns locais armazenam as chaves públicas no LDAP. Outros enviam authorized_keys arquivos usando seu sistema de implantação.

No meu ambiente, os usuários que precisam de acesso ao shell me fornecem suas chaves públicas. Essas chaves são adicionadas ao nosso sistema LDAP e sshd consulta as chaves públicas listadas para cada usuário para autenticá-las, por meio do Patch de chave pública LDAP .
Quando alguém precisa adicionar uma chave adicional ou revogar uma chave existente, ela informa ao administrador e nós cuidamos disso. Eventualmente, à medida que formos escalando, implementarei um sistema que permita às pessoas rotacionarem suas próprias chaves públicas.

Cada um dos nossos sites tem um par de servidores LDAP, sincronizados com o nosso mestre com a replicação LDAP, que mantém os dados consistentes (e acessíveis) em cada local.

Tudo o que descrevi pode ser feito com software de código aberto. Existem também produtos comerciais que fazem a mesma coisa. Você precisa pesquisar as opções disponíveis mais detalhadamente e decidir qual (is) melhor se adequa ao seu ambiente. Se você tiver mais perguntas (mais específicas), provavelmente seremos mais úteis.

    
por 23.08.2011 / 22:21
9

Os keypairs não devem ser gerados em nenhum lugar, mas no computador de cada usuário. Chaves privadas são nomeadas como tal por um motivo.

Dito isso, pude ver um caso de uso para algum tipo de repositório centralizado de chaves públicas dos usuários. Uma opção seria armazenar chaves públicas no OpenLDAP - versões recentes do OpenSSH podem ler chaves do LDAP.

    
por 23.08.2011 / 22:22
1

Eu sei que essa é uma pergunta um pouco antiga, mas o Google a retorna bastante alta ao procurar por esse tipo de coisa.

Para aqueles de nós que procuram uma solução à parte do LDAP, acabei de encontrar o projeto "SKM": link

    
por 05.09.2013 / 02:22
1

Existem muitas soluções comerciais e de código aberto, como o Userify [1] (onde trabalho), o Universal Key Manager [2], o SSH Key Box [3], etc. Depende de quais são suas necessidades e se você estiver procurando algo que centralize o gerenciamento e descentralize a operação (para que seus servidores não dependam de uma autoridade central para efetuar login ... nesse caso, talvez você não consiga fazer login em nenhum dos seus servidores, se, digamos, seu servidor LDAP está inativo!)

  1. link

  2. link

  3. link

Veja também esta discussão do Slant:

link

    
por 10.11.2017 / 00:42