Jeśli używam czegoś takiego jak gitolite do obsługi kontroli dostępu, jak dobrze skalowane są klucze autoryzowane? Oznacza to, że jeśli powiem 50 000 użytkowników, jaka będzie wydajność (domyślam się, że nie jest zbyt dobra). Jakie są alternatywy?
Aktualizacja: Postanowiłem zrobić kilka testów sam (co powinienem był zrobić w pierwszej kolejności). Napisałem prosty skrypt do generowania kluczy SSH i dodawania ich do pliku uprawnionych kluczy. Mój komputer nie jest tak szybki, więc wygenerowałem tylko 8 061 kluczy, a następnie dodałem własny na końcu, plik miał 3,1 MB. Następnie dodałem repozytorium git z jednym plikiem i trzy razy uruchomiłem klon git:
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
Wydajność jest znacznie lepsza, niż się spodziewałem. Nadal jestem bardzo zainteresowany alternatywami, które mogą być szybsze i bardziej wydajne dla dużej grupy kluczy od 50 000+.
authorized_keys
Plik z 50k kluczy wynosi jedynie około 25MB. Z pewnością będzie to całkowicie buforowane w buforach systemu plików. Wyobrażam sobie, że czas znalezienia klucza w pliku byłby krótszy niż czas rzeczywistego użycia tego klucza do uwierzytelnienia użytkownika.