Estamos procurando mudar para o gerenciamento baseado em chave de logins SSH e nos perguntamos se existe algum sistema de gerenciamento de chaves que nos permita gerenciar centralmente as chaves de acesso em todo o mundo.
Idealmente, o sistema deve permitir a emissão da chave por cliente e revogá-la, se necessário, atualizando rapidamente as chaves da máquina do servidor.
Alguém conhece esse sistema, comercial ou de código aberto?
NOTA: Para esclarecer, precisamos do gerenciamento de chaves para uma quantidade bastante grande de servidores em nuvem (tipo EC2) e uma pequena quantidade de usuários do serviço. Eu acho que o patch LDAP + sugere abaixo pode ser o caminho a percorrer.
Respostas:
Existem muitas maneiras de fazer isso. O armazenamento de chaves LDAP foi mencionado algumas vezes, e eu fiz isso e funciona, na medida em que faz. No entanto, o LDAP tem suas próprias curiosidades de gerenciamento, o que leva um pouco de aprendizado.
Sou um grande fã de servidores simples e robustos que têm dependências mínimas de rede externa para coisas simples, como autenticar administradores. Por isso, apóio-me em uma estratégia de distribuição de chaves SSH muito mais robusta. A chave pública de todos é mantida no sistema de gerenciamento de configuração e, sempre que a pessoa precisar fazer login, sua chave é adicionada. O sistema de configuração também sabe remover chaves que não são especificadas; portanto, quando alguém sai ou sua chave é alterada, é simples remover a configuração da chave e, na próxima execução do sistema de configuração, a chave é removida.
fonte
Pares de chaves devem ser gerados pelo usuário.
O usuário mantém a metade privada - você nunca deve vê-la. Se você tiver a chave privada de alguém em um formulário em que possa lê-la / usá-la, estará fazendo um erro de segurança.
A metade pública é fornecida a você (por qualquer mecanismo que você queira: formulário da Web, email, doe-me-em-um-CD), para ser centralizado da maneira que desejar. Alguns lugares 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
consultam as chaves públicas listadas para cada usuário para autenticá-las, por meio do patch da Chave Pública LDAP .Quando alguém precisa adicionar uma chave adicional ou revogar uma chave existente, avisa o administrador e nós cuidamos dela. Eventualmente, à medida que escalarmos, implementarei um sistema que permita às pessoas girar suas próprias chaves públicas.
Cada um de nossos sites possui um par de servidores LDAP, sincronizados com o mestre com 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. Também existem produtos comerciais que fazem a mesma coisa.
Você precisa pesquisar as opções disponíveis mais detalhadamente e decidir qual delas se adequa melhor ao seu ambiente. Se você tiver mais perguntas (mais específicas), provavelmente podemos ser mais úteis.
fonte
/etc/passwd
e/etc/group
arquivos (permite que as máquinas a funcionar normalmente e os serviços associados para iniciar / executar, mesmo se o LDAP não está disponível)Os pares de chaves não devem ser gerados em lugar algum, mas no computador de cada usuário. As 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.
fonte
Sei que essa é uma pergunta um pouco mais antiga, mas o Google retorna bastante alta ao procurar esse tipo de coisa.
Para aqueles que procuram uma solução separada do LDAP, acabei de encontrar o projeto "SKM": https://sites.google.com/site/jeromeboismartel/code-s-corner/ssh-key-management-with-skimp
fonte
Existem muitas ótimas soluções comerciais e de código aberto, como Userify [1] (onde trabalho), Universal Key Manager [2], SSH Key Box [3], etc. Depende de quais são suas necessidades e se você está procurando algo que centralize o gerenciamento enquanto descentraliza a operação (para que seus servidores não confiem em uma autoridade central para efetuar login ... nesse caso, talvez você não consiga efetuar login em nenhum dos seus servidores, se, por exemplo, seu O servidor LDAP está inoperante!)
https://userify.com
https://www.ssh.com/products/universal-ssh-key-manager/
https://www.sshkeybox.com
Veja também esta discussão Slant:
https://www.slant.co/topics/8010/~managers-for-ssh-keys
fonte