Git Server разочарование (Gitosis, Gitolite и т. Д.) - PullRequest
17 голосов
/ 09 апреля 2011

Прошу прощения за расстраивающие оттенки, поскольку я несколько раз пытался правильно настроить этот параметр, но безрезультатно (возможно, и, скорее всего, из-за моего невежества, но также вероятно из-за отсутствия тщательной и краткой документации).

Я пытаюсь настроить git-сервер, чтобы я мог делиться кодом с небольшой группой разработчиков.Каждый разработчик может подключаться с нескольких клиентских компьютеров.Я пришел из MS в прошлом, поэтому я немного избалован разработкой toolset , но было бы замечательно, если бы я мог получить что-то похожее на TFS.

При попытке настроитьлибо gitosis (я понимаю, что это устарело для сообщества git на https://serverfault.com/questions/225495/ubuntu-server-gitosis-user-naming-convention), либо gitolite, кажется, что, как только я настрою его, я должен быть чрезвычайно осторожен, потому что кажется, что все балансирует на зубочистках.

Моя последняя попытка настроить git-сервер включала перемещение моего открытого ключа (benny.pub) с моего ноутбука на сервер, настройку всего с использованием этого открытого ключа и удаление конфигурации для настройки репозитория и разрешений.потом понял, что хочу разрабатывать на другом ПК, поэтому я создал новый ключ (benny@desktop.pub) и переименовал в benny.pub в benny@laptop.pub, что явно напортачило. Именно здесь я знаю, что я был глуп, изменивname.

Мой вопрос после многословного описания таков: как я могу настроить надежный самодостаточный git-сервер с помощью abi?Есть ли возможность, чтобы несколько разработчиков входили в систему с нескольких машин, поддерживая безопасность и т. д.?Для этого должен быть проверенный метод (гитолит описывает, может быть, 4-5 различных способов ... также расстраивает), поскольку я уверен, что я не единственный, кто пытается сделать это точно так же.Может быть, Git не подходит для моей команды?

Любая помощь очень ценится!

Ответы [ 6 ]

15 голосов
/ 10 апреля 2011

По моему опыту, все, что вам нужно, это SSH-сервер с единственной учетной записью / логином, к которому вы можете подключиться, используя один из ваших открытых ключей.Установите gitolite, используя SSH (копирует gitloite с вашего клиента на сервер и выполняет основные настройки), и пусть ваши разработчики отправят вам свои открытые ключи.Добавьте эти ключи в репозиторий gitolite-admin в вашем ~ и нажмите.

Зачем разработчику в первую очередь требуется более одной пары ключей, даже если используется несколько машин?Такие случаи не влияют ни на то, как SSH обрабатывает аутентификацию, ни на то, как gitolite обрабатывает авторизацию: они все еще являются ключами SSH.

  • Если разработчик должен использовать несколько пар ключей (одна для git, другая для какого-то другого сервера), позвольте им справиться со сложностью и посоветуйте им создать запись в ~/.ssh/config для каждойИспользуемая ими комбинация «пара ключей / сервер».

  • Если у разработчика есть своя пара ключей на каждой используемой машине, группы gitolite могут объединять несколько открытых ключей:

@agross = agross-1 agross-2
4 голосов
/ 10 апреля 2011

пара указателей:

Раздел о git на сервере на Скотте Чаконе pro git book

Gitorious - FOSS

2 голосов
/ 10 апреля 2011

Существует несколько решений для git хостинга с открытым исходным кодом с веб-интерфейсом для создания репозиториев и добавления пользователей (например, GitHub: FI ) ... хотя я не знаю об ограничении доступа:

НТН

2 голосов
/ 10 апреля 2011

Я поддерживаю конфигурацию gitosis на работе, и когда у разработчика есть несколько ключей ssh, все, что мне нужно сделать, это поместить все эти ключи в один файл keydir/user.pub.

Так что объедините все ваши ключи вkeydir/benny.pub и все будет готово.

1 голос
/ 10 апреля 2011

Я использую Debian для каждого разработчика, имеющего учетную запись на сервере.Я использую SSH с закрытым ключом входа в систему.Наконец, разработчик должен использовать URL-адрес, например, ssh: //username@example.com/git-repo/repo.git, чтобы оформить заказ или в любом случае взаимодействовать с git в репо

0 голосов
/ 27 января 2012

Мне кажется, проблема в том, что ваш ssh-клиент (версия для Windows или Linux) не находит файл ключа.У меня была та же проблема, и я решил ее следующим образом:

  • В моей записной книжке сгенерирован файл ключа (rafael.nicoletti@mycorporation) в папке ~ / .ssh (где ~ - домашняя папка. Версия для Windows -% HOME% env)
  • Я добавил конфигурацию имени файла в ~ / .ssh со следующим содержимым:

    IdentityFile ~/.ssh/rafael.nicoletti@corporation

В любом месте, где я хочу получить доступ к своим серверам git, я просто копирую эти файлы в мою папку% HOME%

Вы также можете поместить некоторые вещи, подобные этому, в конфигурационный файл:

IdentityFile /d/identity.key
IdentityFile /e/identity.key
IdentityFile /f/identity.key
IdentityFile /.../identity.key

Так что конфиг будет искать ключи в сменных носителях.

...