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

Где мне установить gitosis на Debian? И это происходит как на моем dev, так и на живом сервере?

В последнее время я читал много документации по gitosis, но, по общему признанию, я новичок в ключах ssh, и, в свою очередь, у меня, кажется, есть только элементарное понимание того, как gitosis на самом деле работает с git для обеспечения контроля доступа.

Но на самом деле мои исследования длились слишком долго, и я чувствую, что не могу свернуть за угол, чтобы понять одну вещь в Gitosis. Это было бы:

1) Где, черт возьми, мне установить Gitosis на мой сервер Debian? В / home / git /? Или / usr / bin /? В самом репозитории в / var / www? это одна вещь, которая, похоже, не освещена в различных блогах, которые я читал по теме установки. Тем не менее, это кажется справедливым вопросом.

2) Некоторые блоги говорят об использовании открытого ключа, некоторые ссылаются на закрытый ключ. некоторые, кажется, советуют не вводить пароль для любого ключа, который они хотят использовать. Другие говорят, что если оставить поле пароля пустым, все станет небезопасным. Так что это меня полностью сбило с толку.

3) Все, что я хочу сделать, это добавить себя и двух других разработчиков, чтобы они имели доступ к серверу разработки, чтобы они могли отправлять код из одного каталога (скажем, своей собственной песочницы) в каталог www / html dev на том же сервере (для выпуска к внутреннему тестированию). Затем я хочу отправить код оттуда на другой сервер, как только он будет протестирован. Неужели так сложно настроить? мне добавить git И gitosis на живой сервер?

Я использовал эту страницу, перечисленную ниже, среди прочих для справки и понял большую часть ее. просто не те части, о которых я спрашиваю выше. Спасибо.

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

1: Что касается установки gitosis, вы извлекаете его "источник" в любой каталог, который вам нравится. У сценария setup.py есть местоположения по умолчанию, которые он будет использовать для установки всего. Пакет Debian gitosis установит файлы перечислено здесь. Что касается ваш кода, gitosis управляет репозиторием в домашнем каталоге пользователя "git". Оттуда вам нужно будет получить рабочую копию настоящего веб-сайта. Есть страница Вот об использовании git для управления веб-сайтами здесь, у которого есть некоторые идеи для автоматизации этого, хотя вам понадобится больше смазки для локтей, чтобы справиться с проблемами постановки и производства. Также см. № 3.

2: SSH использует пару открытых / закрытых ключей. Пользователь всегда держит закрытый ключ в секрете, а затем выдает открытый ключ всем серверам, на которых пользователь хочет войти в систему (таким образом, если кто-то «украдет» открытый ключ, лучшее, что они могут сделать, это позволить пользователю войти в систему. на свой сервер). Команда gitosis-init, указанная в руководстве, которое вы связали, берет публичную половину ключа и добавляет ее в список SSH-ключей authorized_keys для созданного вами пользователя "git" со специальными настройками, которые заставляют любого, кто входит в систему, используя половину закрытого ключа, к только уметь пользоваться гитозисом.

3: Вам нужно будет решить это на основе ваших средств управления доступом. Если у вашей команды есть доступ к оболочке на производственном сервере, проще всего будет: git pull все обновления с гитолита на рабочий сервер. Если у вас нет доступа к оболочке, вам необходимо настроить какую-то службу для продвижения сайта. к производственный сервер, что, вероятно, было бы проще всего использовать rsync или scp или что-то подобное.

Как SSH заставляет Gitosis работать

В ssh есть несколько ключевых моментов, которые заставляют gitosis работать:

Первая часть - это система открытого / закрытого ключей, которая позволяет пользователям входить в систему, используя ключи, а не пароль учетной записи. Это то, что позволяет нескольким людям использовать одно и то же имя пользователя ssh ("git") для входа в систему.

Следующая часть - это authorized_keys файл. Все открытые ключи, которым разрешено входить в эту учетную запись «git», хранятся в этом файле. Когда вы подключаетесь, вы и сервер обмениваетесь информацией на основе ключей (без фактической передачи самого ключа), чтобы доказать, что ваш закрытый ключ соответствует одному из этих разрешенных открытых ключей. Чтобы ваш клиент мог это сделать, если вы установили парольную фразу для своего ключа (которая фактически шифрует сам ключ), вам нужно будет дать своему клиенту парольную фразу.

«Магия» гитозиса в том, что authorized_keys файл можно настроить для принудительного выполнения определенной клавиши с помощью определенной команды. какой gitosis-init делает (в дополнение к настройке собственного "специального" репозитория конфигурации gitosis) берет предоставленный ему открытый ключ и добавляет его в файл authorized_keys с помощью команды, принудительно указывающей программе, которая идентифицирует фактического владельца ключа и подключает удаленный git программу в локальный репозиторий git (эта команда gitosis-serve username). Обратите внимание, что gitosis-init следует использовать только один раз, после этого все изменения вносятся через репозиторий конфигурации: вы добавляете открытые ключи других разработчиков (которые они должны сгенерировать сами, сохраняя закрытый ключ и предоставляя вам только открытый ключ) в этот репозиторий и отправьте конфигурацию обратно на сервер. gitosis автоматически добавит authorized_keys строки с информацией о пользователе, когда это будет сделано.