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