Думаю, у меня есть проблемы с пониманием того, чего я хочу достичь ...
Итак, начнем с того, что сейчас работает (все описанные серверы работают под CentOS 7):
А теперь моя конечная цель:
Я нашел это в журнал изменений gitolite :
(пара скриптов contrib - запрос серверов LDAP на базе IPA для членства в группах и управления ключами пользователей)
Поэтому я подумал, что можно достичь того, чего я хочу, но я не знаю, как ...
Я читал, что также можно запросить сервер LDAP для получить информацию о группах. Поэтому я хочу верить, что с открытыми ключами можно делать то же самое.
Я просматриваю множество ссылок, но не могу найти что-то, что решило бы мою проблему ... Если бы кто-то дал мне хоть небольшой намек, было бы здорово :)
Хорошего дня !
PS: просто хотел добавить, что не боюсь читать / писать много кода. И это не проблема, если ваше решение - использовать что-то еще, кроме гитолита, даже если сохранение гитолита было бы лучше для личных целей.
Вот как все работает сейчас:
Когда я пытаюсь клонировать репозиторий по умолчанию 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
Я просто добавляю, как мой сервер данных запрашивает 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
, например.
Документацию должно быть легко найти.