2016-03-04 4 views
2

Я проследовал ниже, чтобы настроить git-сервер с помощью ssh.Настроить ssh-ключ на git repo

https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server

Это было хорошо до тех пор, как я был единственным, с помощью Git репо. Теперь у меня есть несколько пользователей, которым необходим доступ к конкретным репозиториям на сервере git. Вышеупомянутый подход позволяет всем пользователям получить доступ ко всем репозиториям на сервере.

Как я могу разрешить репо для каждого пользователя, используя соответствующий ssh-ключ?

ответ

0

Git не делает доступ на уровне репо подобным образом. Посмотрите что-то вроде gitolite или Gitlab CE для управления доступом к репозиторию с помощью SSH-ключа.

0

Предполагая, что это находится в окне Unix, тогда git - это только пользователь в системе, а элементы управления доступом Unix применяются.

  1. Создайте 2-го пользователя git в системе, например. git2.
  2. Добавьте ключ нового пользователя к файлу authorized_keys 2-го git пользователя, но не к файлу authorized_keys 1-го git пользователя. При желании добавьте свой собственный ключ в файл author_keys второго игрока git.
  3. Инициализируйте 2-й пользовательский репозиторий в качестве второго пользователя git. Убедитесь, что разрешения установлены в исходных репозиториях, так что пользователь 2-го уровня не может получить к ним доступ. Это потребует немного понимания оболочки Unix, разрешений на файлы Unix и команды chmod.
  4. Используйте второго пользователя git при обращении к второму проекту, например. [email protected]:/opt/git/project.git.

Для масштабирования для нескольких пользователей вы либо закончите настройку 1 git пользователя на проект (или набор проектов). Для многих пользователей вы должны настроить учетную запись пользователя git для каждого пользователя и использовать разрешения группового файла для контроля доступа к совместным репозиториям. Последнее потребует использования опции git init --shared=xxx.

Смежные вопросы