Git Server Frustration (Гитоз, Гитолит и т. д.)

17

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

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

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

Моя последняя попытка настроить сервер git включала перенос моего открытого ключа (benny.pub) с моего ноутбука на сервер, установку всего с помощью этого открытого ключа и выключение конфигурации для настройки репо и разрешений. Затем я понял, что хочу развиваться на другом ПК, поэтому я создал новый ключ ([email protected]) и переименовал benny.pub в [email protected], который, очевидно, закрутил вещи. Здесь я знаю, что я был немым, изменив имя.

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

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

    
задан Benny 09.04.2011 в 21:54
источник
  • Возьмите гитолит с помощью метода «from-client»: stackoverflow.com/questions/5041067/gitolite-git-clone-error/.... Работает как шарм. –  VonC 09.04.2011 в 22:12
  • Кроме того, на мой взгляд, неважно делиться ключами SSH между системами, такими как ноутбуки и настольные компьютеры. Пока каждый из них безопасен, а главное, что ключ имеет кодовую фразу. –  Mike Cooper 27.04.2011 в 00:08

6 ответов

15

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

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

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

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

@agross = agross-1 agross-2
    
ответ дан Alexander Groß 10.04.2011 в 02:12
  • Больше нет возможности установить gitolite через ssh. Я рекомендую эту статью для gitolite + GitLab (хороший пользовательский интерфейс для гитолита): blog.phusion.nl/2012/04/21/... Обратите внимание, что это для Debian, но должно быть похоже на другие системы –  glebm 30.06.2012 в 01:23
  • @glebm Что значит «больше нет возможности установить gitolite через ssh»? Это протокол по умолчанию. –  webXL 19.06.2013 в 01:44
  • @webXL Он говорил об установке, а не о доступе к серверу Git после его установки. На сегодняшний день Gitolite не предоставляет средств для установки через SSH. Однако вы можете использовать SSH на своем сервере. –  Alexander Groß 22.06.2013 в 13:35
4

Несколько указателей:

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

Gitorious - FOSS

    
ответ дан Rom1 09.04.2011 в 22:49
2

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

Итак, соедините все свои ключи с keydir/benny.pub , и вы все настроитесь.

    
ответ дан adl 09.04.2011 в 22:25
  • Я не понимаю, как это может работать. Когда я пытаюсь это сделать, это написано: «ПРЕДУПРЕЖДЕНИЕ: файл pubkey может содержать только одну строку (ключ), игнорируя user.pub». Так что нет, это не сработает. –  tito 15.11.2011 в 12:48
  • Используете ли вы гитолит или гитоз? Мой ответ - только за гитозис, который мы используем на работе. (Gitolite работает по-разному и хочет несколько ключей в отдельных файлах.) –  adl 15.11.2011 в 19:42
2

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

НТН     

ответ дан Jakub Narębski 10.04.2011 в 20:12
1

Я использую debian, у каждого разработчика есть учетная запись на сервере. Я использую ssh с логином входа в личный ключ. Наконец, разработчик должен использовать URL-адрес, например ssh: //[email protected]/git-repo/repo.git, для проверки или в любом случае взаимодействовать с git on repo

    
ответ дан Ashwini Dhekane 09.04.2011 в 22:09
  • Вам не нужно иметь логин для каждого разработчика. SSH / gitolite может обрабатывать несколько человек за единственным логином входа git @ server, все из которых идентифицируются собственным открытым ключом SSH. –  Alexander Groß 10.04.2011 в 01:58
  • @ Александр, не могли бы вы описать, как? –  Benny 10.04.2011 в 16:20
  • @Benny Это довольно просто: SSH выполняет только аутентификацию, gitolite обрабатывает только авторизацию и протокол git. Открытый ключ разработчика зарегистрирован в ~ / .ssh / autorized_keys пользователя git. SSH разрешит / разрешит разработчику войти в систему с учетной записью git. ~ / .ssh / autorized_keys также содержит «оболочку» для запуска, которая ссылается на главный скрипт gitolite с именем пользователя в качестве параметра. Этот скрипт содержит части авторизации (он читает конфигурационный файл gitolite), а также обрабатывает доступ репо. –  Alexander Groß 10.04.2011 в 19:34
0

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

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

    IdentityFile ~/.ssh/[email protected]

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

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

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

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

    
ответ дан Rafael Diego Nicoletti 27.01.2012 в 03:57