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.


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.


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.