Я недавно установил gitolite, где пользователи получают доступ к репозиторию git с пользователем gitolite через ssh.
Теперь я хотел бы интегрировать это в LDAP. У каждого пользователя есть pubkey в LDAP, и если у него есть объектный класс git, он сможет получить доступ к пользователю gitolite через ssh.
Я знаю, что можно хранить открытые ключи в LDAP, я не уверен, можно ли разрешить аутентификацию в учетной записи "gitosis" на основе objectClass.
РЕДАКТИРОВАТЬ: Чтобы уточнить, с помощью objectClass git пользователь «foobar» сможет войти в систему как «gitolite» через ssh.
Автор гитолит добавил некоторые функции, которые помогают поддерживать внешние хранилища ключей и информацию о членстве в группах. Искать ИЗМЕНЕНИЕ для LDAP.
Чтобы использовать внешний ключ, сохраните свой sshd необходимо поддерживать обычные .ssh/authorized_keys
файл (это файл, который сообщает sshd бежать gl-auth-команда когда гитолит пользователь входит в систему).
keydir
в gitolite-admin
репозиторий):$GL_NO_SETUP_AUTHKEYS = 0;
в твоем .gitolite.rc
.keydir
).authorized_keys
файл.Видеть сообщение фиксации, которое ввело gl-setup-authkeys для собственного описания автора.
Использование определенных извне групп пользователей немного сложнее, поскольку обычно включает в себя вставку другой программы между sshd и gl-auth-команда (членство в группах передается как дополнительные аргументы в gl-auth-команда). Видеть «Группы пользователей и LDAP / аналогичные инструменты».
Если вы хотите попробовать что-то нестандартное, вы делаете .ssh / authorized_keys2 именованным каналом и пишете сценарий / программу, которая запрашивает LDAP, выполняет надлежащую фильтрацию, а затем выводит содержимое ключей authorized_keys. Я предлагаю authorized_keys2, поскольку вы, вероятно, уже используете authorized_keys.
Вы должны быть осторожны со скриптом (следить за блокировкой записи, знать, когда делать новый запрос и т. Д.), Но он будет давать вам правильный ответ каждый раз, если вы все делаете правильно.