SSH доступ для сотень тисяч користувачів


2

Мені потрібно налаштувати рішення, подібне до GitHub , де користувачі можуть SSH до свого сховища git.

Це має масштабуватись для сотень тисяч користувачів, тому моя ідея полягає у використанні розподіленої файлової системи для даних (щоб кожен вузол міг отримати доступ до всіх даних) та реплікуваній базі даних для управління користувачами (тому знову ж таки - кожен вузол завжди може отримати доступ до весь список користувачів).

Використовувати звичайний файл з дозволеними ключами неможливо, оскільки користувачі не прив’язані до певного вузла, тому я шукав спосіб прочитати список із бази даних ( https://serverfault.com/a/443230/125948 ).

Проблема з командою AuthorizedKeysCommand полягає в тому, що вона передає лише ім'я користувача (що є моїм випадком - буде git для всіх користувачів), тому в основному мені доведеться робити SELECT pub_key FROM userі завжди повертати весь список для кожного з'єднання.

Це, очевидно, не є правильним рішенням, тому я шукав інший спосіб аутентифікації. В основному моє запитання: як на Землі GitHub це роблять?


Оскільки ви вже налаштовуєте розподілену файлову систему, що приводить вас до висновку, що "використовувати звичайний файл з дозволеними ключами неможливо" ?
HBruijn

Якщо припустити, що дуже багато користувачів (скажімо, мільйони) - порівняно з кожним ключем пабу, здається, дуже повільно, коли користувач намагається увійти, не кажучи вже про те, - редагувати цей файл щоразу (видаляти ключі, наприклад). Я помиляюся з цим припущенням? Крім того, я не хочу утримувати 2 набори користувачів (db і ключі) і намагаюся їх синхронізувати - я вважаю за краще це все в db.
Гілад Новік

Відповіді:



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.