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