Мені потрібно налаштувати рішення, подібне до GitHub , де користувачі можуть SSH до свого сховища git.
Це має масштабуватись для сотень тисяч користувачів, тому моя ідея полягає у використанні розподіленої файлової системи для даних (щоб кожен вузол міг отримати доступ до всіх даних) та реплікуваній базі даних для управління користувачами (тому знову ж таки - кожен вузол завжди може отримати доступ до весь список користувачів).
Використовувати звичайний файл з дозволеними ключами неможливо, оскільки користувачі не прив’язані до певного вузла, тому я шукав спосіб прочитати список із бази даних ( https://serverfault.com/a/443230/125948 ).
Проблема з командою AuthorizedKeysCommand полягає в тому, що вона передає лише ім'я користувача (що є моїм випадком - буде git для всіх користувачів), тому в основному мені доведеться робити SELECT pub_key FROM user
і завжди повертати весь список для кожного з'єднання.
Це, очевидно, не є правильним рішенням, тому я шукав інший спосіб аутентифікації. В основному моє запитання: як на Землі GitHub це роблять?