Quanto bene si ridimensiona di authorized_keys?


11

Se sto usando qualcosa come gitolite per gestire il controllo degli accessi, in che misura si è autorizzato il dimensionamento dikey_key? Significa che se dico 50.000 utenti come sarà la performance (suppongo che non sia molto buona). Quali sono le alternative?

Aggiornamento: ho deciso di fare alcuni test da solo (cosa che avrei dovuto fare in primo luogo). Ho scritto un semplice script per generare chiavi SSH e aggiungerle a un file authorized_keys. Il mio computer non è così veloce, quindi ho generato solo 8.061 chiavi e poi ho aggiunto il mio alla fine, il file è finito per essere 3.1MB. Ho quindi aggiunto un repository git con un file e ho eseguito git clone tre volte:

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

Le prestazioni sono molto migliori di quanto pensassi. Sono ancora molto interessato a tutte le alternative che potrebbero essere più veloci, più efficienti per un grande gruppo di chiavi oltre 50.000.


Ti aspetti di avere 50000 utenti simulati su un singolo server o 50000 utenti totali con accesso sporadico?
Mxx,

Accesso sporadico. Sto chiedendo delle prestazioni del server SSH che deve cercare un file authorized_keys con 50.000 chiavi ad ogni accesso.
Jeremy,

3
Un authorized_keysfile con 50k chiavi è solo di circa 25 MB. Sicuramente questo sarà completamente memorizzato nella cache nei buffer del filesystem. Immagino che il tempo per trovare la chiave nel file sarebbe sminuito dal momento in cui la chiave verrà effettivamente utilizzata per autenticare l'utente.
cjc

Risposte:


7

Puoi effettivamente vedere l'efficienza su GitHub su quanto è veloce. Non causerai un collo di bottiglia significativo con così tante chiavi.

Sebbene documentato nel loro blog dal 2009 , hanno cambiato il modo in cui vengono recuperate le chiavi SSH da un database. Suggerimento per il cappello: @Jeremey

Ma hai creato più di 8k chiavi, puoi provare di nuovo con 50k chiavi.

Queste chiavi non devono necessariamente essere valide, basta scrivere un generatore e scrivere il file, quindi aggiungere il proprio alla fine.


2
Conviene che l'OP dovrebbe semplicemente testare un file di chiavi da 50K con il suo hardware. Non sono sicuro che GitHub sia un ottimo esempio: chi sa cosa fanno nel backend? Per quanto ne sappiamo, hanno un sshd personalizzato che memorizza le chiavi autorizzate in Redis.
cjc

Forse, ma sono piuttosto espliciti su ciò su cui stanno lavorando, e altri siti più grandi che gestiscono repository Git pubblici usando gitolab non lo hanno menzionato. Non vale molto peso, ovviamente, ma non ne ho visto alcun riferimento.
vgoff,

Gerrit si vanta però di una ricerca dei tasti ssh ottimizzata, affermando che dovrebbe essere più veloce di Gitosis. Non sapevo del progetto Gerrit.
vgoff,

1
Ho trovato un articolo su come funziona github: github.com/blog/530-how-we-made-github-fast . Usano un server SSHD con patch che ottiene le chiavi da un server MySQL.
Jeremy,

2
dai un'occhiata all'opzione AuthorizedKeysCommand su sshd_config
Lluís
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.