Насколько хорошо масштабируется Author_keys?

11

Если я использую что-то вроде 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+.

Джереми
источник
Ожидаете ли вы, что на одном сервере будет 50000 симулирующих пользователей или 50000 пользователей со спорадическим доступом?
Mxx
Спорадический доступ. Я спрашиваю о производительности SSH-сервера, необходимого для поиска файла author_keys, содержащего 50000 ключей при каждом входе в систему.
Джереми
3
authorized_keysФайл с 50k ключами только около 25Мб. Конечно, это будет полностью кэшироваться в буферах файловой системы. Я полагаю, что время нахождения ключа в файле будет меньше времени, когда он действительно будет использовать этот ключ для аутентификации пользователя.
CJC

Ответы:

7

На самом деле вы можете увидеть эффективность на GitHub относительно того, насколько быстро это происходит. Вы не собираетесь создавать значительное узкое место с таким количеством ключей.

Хотя, как указано в их блоге за 2009 год , они изменили способ получения ключей ssh ​​из базы данных. Шляпа: @Jeremey

Но вы создали более 8 тыс. Ключей, и вы можете снова протестировать их с 50 тыс. Ключей.

Эти ключи не обязательно должны быть действительными, просто напишите генератор и напишите файл, а затем добавьте свой в конец.

vgoff
источник
2
Договорились, что ОП должен просто протестировать файл ключей 50К на своем оборудовании. Я не уверен, что GitHub - отличный пример: кто знает, что они делают на сервере? Насколько мы знаем, у них есть настроенный sshd, который хранит авторизованные ключи в Redis.
CJC
Возможно, но они довольно открыто говорят о том, над чем они работают, и другие крупные сайты, обслуживающие публичные git-репозитории с использованием gitolab, не упоминали об этом. Конечно, не стоит большого веса, но я не видел упоминаний об этом.
vgoff
Геррит может похвастаться оптимизированным поиском по ssh-ключу, заявив, что он должен быть быстрее, чем Gitosis. Я не знал о проекте Gerrit.
vgoff
1
Я нашел статью о том, как работает github: github.com/blog/530-how-we-made-github-fast . Они используют исправленный сервер SSHD, который получает ключи от сервера MySQL.
Джереми
2
взгляните на опцию AuthorizedKeysCommand в sshd_config
Луис