Existem várias maneiras de fazer isso, especialmente se você estiver em versões recentes do OpenSSH. Lembre-se também de que você precisa de mais do que uma maneira de adicioná-los, você precisa de uma maneira de removê-los (e rapidamente - considere se a chave está comprometida, as partes da pessoa em termos ruins, etc.). Uma adição importante que leva um dia para se propagar é um aborrecimento; uma remoção de chave que leva um dia para se propagar é uma séria preocupação de segurança.
Tendo em mente que a importância da remoção é fácil, isso sugere algumas abordagens:
-
Parece que você já tem uma maneira de criar os usuários rapidamente. Existe uma boa chance de que o LDAP, por exemplo. O LDAP pode armazenar chaves públicas SSH, e você pode conectar isso ao sshd usando a opção de configuração
AuthorizedKeysCommand
. Por exemplo, se você estiver executando o SSSD,sss_ssh_authorizedkeys
é destinado a isso. (Veja, por exemplo, documentos do RedHat sobre chaves autorizadas do SSSD ). A adição e a remoção de chaves podem ser instantâneas. No pior dos casos, normalmente, são necessários alguns segundos para a propagação do LDAP. Você pode muito bem automatizar isso (e se você tiver um monte de usuários provavelmente já tem!), Não exigindo nenhuma intervenção do administrador. -
Se os seus servidores devem lidar com a autenticação offline (e além do que o SSSD pode fazer), outra abordagem é usar o suporte da autoridade de certificação (CA) no OpenSSH. Isso está documentado principalmente na seção “Certificados” da manpage ssh-keygen . Basicamente, você configura o sshd de seus servidores para confiar em sua CA e para buscar automaticamente listas de revogação de atualização. Em seguida, você assina a chave pública do cliente com essa CA e fornece o certificado ao cliente. Nesse ponto, o cliente pode efetuar login em todos os servidores que usam esse certificado. Para cancelar a autorização do cliente, adicione-o à lista de revogação (conforme explicado na seção imediatamente a seguir na página man). A adição de chaves é instantânea. A remoção depende da frequência com que você atualiza as listas de revogação. Infelizmente não há nada como OCSP para SSH CAs. Automação (sem ajuda administrativa) de adições é possível fazer com segurança; de remove é fácil.
-
Você poderia, como sugere, usar diretórios pessoais compartilhados, montados automaticamente (ou montados permanentemente, não é necessário montar automaticamente) para que todos os servidores vejam o mesmo
~/.ssh/authorized_keys
- mas esse é um lote de sobrecarga se você não precisar de um$HOME
compartilhado. A adição e a remoção de chaves são instantâneas para bastante rápidas, dependendo do armazenamento em cache. Gerenciamento de chaves provavelmente feito inteiramente pelo usuário, não por um administrador.3b. Ulrich Schwarz aponta que você pode alterar a localização do arquivo de chaves autorizadas do usuário; não precisa ser
~/.ssh/authorized_keys
. Assim, você pode compartilhar um diretório contendo todos os arquivos de chaves autorizados dos usuários e não ter a sobrecarga de diretórios iniciais totalmente compartilhados. -
Você poderia usar sua ferramenta de gerenciamento de configuração como sugere o @DopeGhoti. Tenha muito cuidado para não esquecer um host - especialmente aquele em que a chave foi adicionada manualmente. Provavelmente significa que a adição e remoção de chaves exigirá intervenção manual do administrador.