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

Формат URL Gitolite SSH

Так я получил гитолит настроить. Просто. Но у меня есть одна проблема. 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
  • публичный ключ, имя которого прописано в параметрах директивы command = в ~git/.ssh/authorized_keys.

Что касается user/repos, самое близкое к Gitolite - это дикие репо и шаблон репо.

repo    CREATOR/a[0-9][0-9]