Если я использую что-то вроде gitolite для управления доступом, насколько хорошо масштабируется author_keys? То есть, если я скажу 50 000 пользователей, какой будет производительность (думаю, это не очень хорошо). Какие есть альтернативы?
Обновление: я решил сделать некоторое тестирование самостоятельно (что я должен был сделать в первую очередь). Я написал простой скрипт для генерации ключей SSH и добавления их в файл author_keys. Мой компьютер не такой быстрый, поэтому я сгенерировал только 8 061 ключ, а затем добавил свой собственный в конец, файл оказался размером 3,1 МБ. Затем я добавил репозиторий git с одним файлом и трижды запустил git clone:
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
Производительность намного лучше, чем я думал. Я все еще очень заинтересован в любых альтернативах, которые могут быть более быстрыми и эффективными для большой группы ключей от 50 000+.
authorized_keys
Файл с 50k ключами только около 25Мб. Конечно, это будет полностью кэшироваться в буферах файловой системы. Я полагаю, что время нахождения ключа в файле будет меньше времени, когда он действительно будет использовать этот ключ для аутентификации пользователя.Ответы:
На самом деле вы можете увидеть эффективность на GitHub относительно того, насколько быстро это происходит. Вы не собираетесь создавать значительное узкое место с таким количеством ключей.
Хотя, как указано в их блоге за 2009 год , они изменили способ получения ключей ssh из базы данных. Шляпа: @Jeremey
Но вы создали более 8 тыс. Ключей, и вы можете снова протестировать их с 50 тыс. Ключей.
Эти ключи не обязательно должны быть действительными, просто напишите генератор и напишите файл, а затем добавьте свой в конец.
источник