Назад | Перейти на главную страницу

Разрешить пользователям использовать ssh для определенного пользователя через ldap и сохраненные открытые ключи

Я недавно установил 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-команда когда гитолит пользователь входит в систему).

  1. Отключите обычную генерацию ключей авторизации (основанную на keydir в gitolite-admin репозиторий):
    $GL_NO_SETUP_AUTHKEYS = 0; в твоем .gitolite.rc.
  2. Периодически (каждый раз при изменении ключа, добавлении пользователя и т. Д.):
    1. Извлеките все ключи SSH из хранилища ключей в какой-нибудь удобный временный каталог (используйте те же имена для файлов ключей, как если бы они находились в обычном хранилище ключей. keydir).
    2. Бегать gl-setup-authkeys иметь гитолит восстановить свою часть authorized_keys файл.

Видеть сообщение фиксации, которое ввело gl-setup-authkeys для собственного описания автора.

Использование определенных извне групп пользователей немного сложнее, поскольку обычно включает в себя вставку другой программы между sshd и gl-auth-команда (членство в группах передается как дополнительные аргументы в gl-auth-команда). Видеть «Группы пользователей и LDAP / аналогичные инструменты».

Если вы хотите попробовать что-то нестандартное, вы делаете .ssh / authorized_keys2 именованным каналом и пишете сценарий / программу, которая запрашивает LDAP, выполняет надлежащую фильтрацию, а затем выводит содержимое ключей authorized_keys. Я предлагаю authorized_keys2, поскольку вы, вероятно, уже используете authorized_keys.

Вы должны быть осторожны со скриптом (следить за блокировкой записи, знать, когда делать новый запрос и т. Д.), Но он будет давать вам правильный ответ каждый раз, если вы все делаете правильно.