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.
authorized_keys
arquivo 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.Respostas:
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.
fonte