Логирование по ssh как на github

slik_jay

^_^
Регистрация
24 Май 2008
Сообщения
50
Реакции
27
Навено многие пользовались хостингом репозиториев github. Как известно git работает через ssh, а github упрощает ето дело. Если кому не известно как это работает, кратко опишу:
  • Есть зарегистрированные пользователи сайта, назовем их аккаунтами.
  • Есть один единственный юзер на сервере - `git`
  • Логин идет исключительно по ключам
  • К каждому аккаунту может быть привязано несколько ключей, по каждому из которых он может залогинится
  • Поскольку в системе только один юзер, то права разделяются иным способом
  • Каждый из аккаунтом может иметь несколько репозиториев, к которым доступится может только он
  • Каждый аккаунт может дать другому аккаунту право на запись в свой репозиторий
Вообще почти все тут реализовать не сложно, скрипты, хуки, да и только.
Адрес репозиториев там такого вида git@github.com:slik_jay/sample.git
С него видно, что ето самый обычный адрес для коннекта по ssh
Можно было бы предположить, что из этого адреса достается юзернейм(аккаунт), но это не так, потому что подмена не действует.
Меня интересует вот что: как етим скриптам/хукам узнать какой аккаунт пытается доступится до репозитория, если все это идет исключительно через ОДНОГО юзера `git` ?
 
Кажется я сам нашел ответ:
Для просмотра ссылки Войди или Зарегистрируйся

Они используют патченый sshd (который ищет ключи в базе данных) + касномный git-shell
 
Назад
Сверху