Создайте SSH-пользователя с ограниченными правами только для использования репозитория Git

У меня есть репозиторий git, размещенный на моем сервере SunOS, который я дистанционно использую через ssh

git clone ssh://[email protected]/path/to/git

Теперь мне нужно добавить больше пользователей, чтобы иметь доступ к этому репозиторию, но не знаете, как это сделать.

Я добавил один testUser в ssh, но, похоже, я не могу ограничить эти права пользователя только git.

testUser способен передавать и просматривать весь сервер.

Как я могу создать пользователей, которые могут только получить доступ к git удаленно, клонировать /тянуть /нажимать и т. д. ...

спасибо

9 голосов | спросил Bach 13 AM00000070000002931 2010, 07:54:29

3 ответа


9

Вы можете использовать gitolite под одним пользователем вместо того, чтобы настраивать несколько пользователей git-shell (и требуемые групповые и групповые разрешения, чтобы они могли совместно использовать доступ к репозиториям).

gitolite работает под одним, обычным пользователем на сервере и использует Открытые ключи SSH для дифференцирования доступа к репозиториям Git (см. как gitolite использует ssh "для некоторых из детали того, как gitolite выполняет идентификацию на основе SSH). gitolite предлагает для каждого репозитория, для каждой ветви и даже для некоторого контроля доступа к каждому пути.

ответил Chris Johnsen 14 AM00000090000001131 2010, 09:40:11
9

В основном у вас есть два варианта.

  1. Как упоминалось выше, при создании пользователей на сервере установите для своей оболочки значение git-shell ( запись в книгу здесь ). Это позволит пользователю войти в систему через SSH, но вместо запуска обычной полнофункциональной оболочки (например, sh, bash и т. Д.) Она будет запущена, git-shell, которая предоставляет только доступ к функциональности git.

  2. Кроме того, вы можете сделать свои репозитории доступными через другой протокол, например TCP (используя git-deamon ) или HTTP /HTTPS. Я бы рекомендовал такой сценарий для доступа только для чтения.

Вы упомянули о том, что хотите поддерживать функциональность «push» для своих пользователей, поэтому вам действительно нужно перейти с опцией № 1.

ответил chuckx 13 PM00000090000000631 2010, 21:03:06
3

вам нужно изменить свою оболочку на git-shell, что даст им доступ только к функциям git.

ответил topdog 13 AM00000080000001431 2010, 08:30:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132