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

Заставить Gitolite получать ключи ssh из LDAP

Думаю, у меня есть проблемы с пониманием того, чего я хочу достичь ...

Итак, начнем с того, что сейчас работает (все описанные серверы работают под CentOS 7):

А теперь моя конечная цель:

Я нашел это в журнал изменений gitolite :

(пара скриптов contrib - запрос серверов LDAP на базе IPA для членства в группах и управления ключами пользователей)

Поэтому я подумал, что можно достичь того, чего я хочу, но я не знаю, как ...

Я читал, что также можно запросить сервер LDAP для получить информацию о группах. Поэтому я хочу верить, что с открытыми ключами можно делать то же самое.

Я просматриваю множество ссылок, но не могу найти что-то, что решило бы мою проблему ... Если бы кто-то дал мне хоть небольшой намек, было бы здорово :)

Хорошего дня !


PS: просто хотел добавить, что не боюсь читать / писать много кода. И это не проблема, если ваше решение - использовать что-то еще, кроме гитолита, даже если сохранение гитолита было бы лучше для личных целей.


РЕДАКТИРОВАТЬ1:

Вот как все работает сейчас:

Когда я пытаюсь клонировать репозиторий по умолчанию test.git с помощью этой команды:

git clone ssh://git@dataserver/testing.git

Со следующими ~ / .ssh / config :

host dataserver
    hostname dataserver
    Identityfile ~/.ssh/user
    User git

Мой терминал сообщает мне следующее:

Cloning in 'testing'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists

Но если бы у меня был открытый ключ для моего пользователя (user.pub) в keydir папка, все нормально:

git clone ssh://git@dataserver/testing.git
Cloning in 'testing'...
Enter passphrase for key '/home/user/.ssh/user_rsa:
warning: it seems that you've cloned a bare repository.
Verifying connectivity... done.

И репозиторий git находится здесь:

ls -l | grep testing
drwxrwxr-x 3 user user 4096 mars 23 11:03 testing

РЕДАКТИРОВАТЬ 2:

Я просто добавляю, как мой сервер данных запрашивает OpenLDAP, чтобы получить открытый ключ пользователя (на всякий случай).

/ и т.д. / ssh / sshd_config:

AuthorizedKeysCommand /usr/bin/ssh-keyldaps %u
AuthorizedKeysCommandUser nobody

/ usr / bin / ssh-keyldaps:

ldapsearch       -H ldaps://ldapserver \
                 -b dc=my,dc=domain \
                 -x -LLL \
                 -o ldif-wrap=no \
                 "(&(uid=$uid)(sshPublicKey=*))" 'sshPublicKey' |
                 sed -n 's/^sshPublicKey:\s*\(.*\)$/\1/p'

Я исключил некоторые строки, так как они здесь только для записи.

И благодаря этой конфигурации все пользователи, зарегистрированные в LDAP с sshPublicKey могут войти в сервер данных благодаря своему закрытому ключу.

AuthorizedKeysCommand для sshd_config это, наверное, то, на что вы хотите взглянуть. Фрагмент документации гласит, что gitolite не поставляется с чем-либо для этого, а скорее зависит от внешних факторов.

Вы можете настроить sssd для аутентификации на сервере LDAP, а затем использовать sss_authorized_keys, например.

Документацию должно быть легко найти.