Gitolite SSH Формат URL
Итак, я настроил гитолит. Просто. Но у меня есть одна проблема. URL-адреса SSH следуют формату git@host:repo
, Я привык к Bitbucket / Github, где URL-адреса соответствуют формату git@host:user/repo
, Есть ли способ получить последний формат, используя gitolite?
Другой вопрос. У меня есть мой ~/.ssh/config
файл настроен со следующей записью:
Host <host>
User <user>
IdentityFile <path/to/public/key>
У меня нет настроек, указывающих git
как пользователь, и все же я могу клонировать git@host:repo
без проблем. Очевидно, что мой ssh-клиент использует мой открытый ключ для доступа к серверу, поэтому gitolite позволяет мне клонировать репозиторий, но как мой ssh-клиент узнает, что мой открытый ключ настроен только для <user>
пользователь, а не git
пользователь?
1 ответ
Смотри Гитолит и СШ
Ограничение пользователей определенными командами очень важно для gitolite.
Если вы читаетеman sshd
и ищите формат файла author_keys, вы увидите множество опций, которые вы можете добавить в строку открытого ключа, которые различными способами ограничивают входящего пользователя. В частности, обратите внимание наcommand=
параметр, который означает "независимо от того, что просит поступающий пользователь, вместо этого принудительно запустите эту команду".Также обратите внимание, что когда в файле авторизованных ключей много открытых ключей (т. Е. Строк), каждая строка может иметь различный набор параметров и
command=
ценности.Без этого
command=
В качестве опции, демон ssh просто даст вам оболочку, что не то, что мы хотим для наших ключей gitolite (хотя у нас вполне могут быть другие ключи, которые мы используем для получения оболочки).Это основа того, что заставляет гитолит работать;пожалуйста, убедитесь, что вы понимаете это.
Те command=
используют имя вашего открытого ключа в качестве имени пользователя.
Итак, все ваши ssh-запросы выполняются с:
- пользователь git
- открытый ключ, имя которого зарегистрировано в параметрах директивы command = в
~git/.ssh/authorized_keys
,
Что касается user/repos
, ближайший к вам Gitolite - это дикие репо и репо.
repo CREATOR/a[0-9][0-9]