Qual é a escala das teclas autorizadas?

11

Se eu estiver usando algo como gitolite para lidar com o controle de acesso, quão bem as chaves_computadas são dimensionadas? Ou seja, se eu disser 50.000 usuários, como será o desempenho (acho que não é muito bom). Quais são as alternativas?

Atualização: Eu decidi fazer alguns testes pessoalmente (o que eu deveria ter feito em primeiro lugar). Eu escrevi um script simples para gerar chaves SSH e adicioná-las a um arquivo allowed_keys. Meu computador não é tão rápido, então eu só gerei 8.061 chaves e adicionei a minha no final, o arquivo acabou sendo 3.1MB. Adicionei um repositório git com um arquivo e executei o git clone três vezes:

With 8,061 keys (Mine is at the end of the file)
real    0m0.442s
real    0m0.447s
real    0m0.458s

With just a single key:
real    0m0.248s
real    0m0.264s
real    0m0.255s

O desempenho é muito melhor do que eu pensava. Ainda estou muito interessado em quaisquer alternativas que possam ser mais rápidas e eficientes para um grande grupo de chaves com mais de 50.000.

Jeremy
fonte
Você espera ter 50000 usuários simultâneos em um único servidor ou 50000 usuários no total com acesso esporádico?
Mxx
Acesso esporádico. Estou perguntando sobre o desempenho do servidor SSH ao pesquisar um arquivo autorizado_chaves com 50.000 chaves em cada login.
Jeremy
3
Um authorized_keysarquivo com 50k chaves tem apenas 25 MB. Certamente isso será completamente armazenado em cache nos buffers do sistema de arquivos. Eu imaginaria que o tempo para encontrar a chave no arquivo seria diminuído pelo tempo de realmente usar essa chave para autenticar o usuário.
Cjc 09/07/2013

Respostas:

7

Você pode realmente ver a eficiência no GitHub sobre a rapidez com que isso é. Você não causará um gargalo significativo com tantas chaves.

Embora como documentado em seu blog de 2009 , eles mudaram a maneira como as chaves ssh são recuperadas, de um banco de dados. Dica do chapéu: @Jeremey

Mas, você criou mais de 8k chaves, pode testar novamente com 50k chaves.

Essas chaves não precisam ser válidas, basta escrever um gerador e escrever o arquivo e depois anexar o seu ao final.

vgoff
fonte
2
Concordou que o OP deveria apenas testar um arquivo de chaves de 50K com seu hardware. Não tenho certeza se o GitHub é um ótimo exemplo: quem sabe o que eles fazem no back-end? Pelo que sabemos, eles têm um sshd personalizado que armazena as chaves_autorizadas em Redis.
Cjc 09/07/2013
Talvez, mas eles são bastante expressivos sobre o que estão trabalhando, e outros sites maiores que atendem repositórios públicos de git usando o gitolab não o mencionaram. Não vale muito peso, é claro, mas não vi nenhuma menção a isso.
Vgoff 9/07
A Gerrit se orgulha de uma pesquisa otimizada de chaves ssh, afirmando que deve ser mais rápido que Gitosis. Eu não conhecia o projeto Gerrit.
Vgoff
1
Encontrei um artigo sobre como o github funciona: github.com/blog/530-how-we-made-github-fast . Eles usam um servidor SSHD com patch que obtém as chaves de um servidor MySQL.
Jeremy
2
dê uma olhada na opção AuthorizedKeysCommand em sshd_config
Lluís