Приватный Git сервер на VPS за 5 минут

Если вы занимаетесь разработкой, вы наверняка используете систему контроля версий, как например Git. Если вы работаете над открытыми проектами, вам безусловно подойдет ресурс GitHub, где вы можете создавать неограниченное количество бесплатных публичных репозиториев Git.

Если же вы хотите создать частный или приватный репозиторий, вам придется выложить от $7/месяц за пять репозиториев. Или же вы можете создать свой собственный Git сервер на VPS с неограниченным количеством Git репозиториев.

VPS хостинг

Для нашего урока подойдет любой VPS хостинг, но мы рекомендуем попробовать Digital Ocean, их VPS серверы начинаются всего от $5/месяц, которого вполне хватит и для сотни приватных Git репозиториев.

После создания аккаунта на Digital Ocean, создайте новый сервер с самой базовой конфигурацией. Вы можете использовать поддомен вашего существующего домена, например git.example.org, при этом вам необходимо будет внести соответствующие изменения на DNS сервере вашего домена.

Создание VPS сервера

В качестве операционной системы мы советуем выбрать Ubuntu или Debian. Для нашего примера мы будем использовать Debian 7 64-бит. Создание нового сервера не должно занять больше одной минуты, после чего вы получите пароль от пользователя root по электронной почте.

Создание пользователя Git

После того как вы получили пароль от пользователя root, зайдите на ваш новый сервер с помощью командной строки. Если вы используете Linux или OS X, вы можете сделать это с помощью Terminal. Если вы используете Windows, то вам потребуется приложение Putty.

$ ssh root@git.example.org
root@git.example.org's password:

Работать из под пользователя root не безопасно для вашей системы, поэтому давайте создадим нового пользователя, которому будут принадлежать все наши Git репозитории:

$ useradd -d /home/git -m -s /bin/bash git

Эта команда создаст нового пользователя git с новой домашней директорией. Чтобы задать пароль новому пользователю, используйте команду passwd:

$ passwd git
Enter new UNIX password:

После этого вы можете выйти из системы и зайти вновь уже с помощью нового пользователя:

$ exit
$ ssh git@git.example.org
git@git.example.org's password:

Создаем первый Git репозиторий

Как только вы вошли под новым пользователем Git, вы можете создать новый Git репозиторий с помощью команды git. Сделать это можно в домашней директории пользователя git. Для примера назовем репозиторий example.git:

$ cd ~
$ mkdir example.git && cd example.git
$ git init --bare

Мы создали новую директорию example.git и в ней инициализировали новый пустой Git репозиторий. Теперь вы можете смело закрывать соединение с сервером и клонировать этот Git репозиторий уже из любого другого места, зная лишь пароль от пользователя git на вашем сервере:

git clone git@git.example.org:example.git

Авторизация с помощью SSH ключа

Каждый раз когда вы будете выполнять операции на вашем новом Git сервере, он будет запрашивать пароль от пользователя git. Через какое-то время это может надоесть, особенно если вы используете сложный и надежный пароль.

К счастью, так же как и на GitHub, вы можете использовать ключи SSH для входа на ваш сервер. Если у вас уже есть SSH ключ в директории .ssh на вашем компьютере, перейдите сразу к шагу добавления ключа на сервер.

Создайте новый SSH ключ

В командной строке перейдите в диреткорию .ssh текущего пользователя, и с помощью команды ssh-keygen сгенерируйте новый ключ, назовите его id_rsa:

$ cd ~/.ssh
$ ssh-keygen -t rsa -C "email@example.com"
$ ssh-add id_rsa

Добавление публичного ключа на Git сервер

Воспользуйтесь командой cat, чтобы показать содержимое публичного ключа id_rsa.pub и скопируйте все содержимое в буфер обмена.

$ cat ~/.ssh/id_rsa.pub

После этого зайдите на ваш Git сервер с помощью пользователя git, и в файле .ssh/authorized_keys добавьте ключ из буфера обмена, например с помощью текстового редактора vi:

$ ssh git@git.example.org
$ vi ~/.ssh/authorized_keys

Сохраните и закройте файл, выполните выход с вашего Git сервера и попробуйте снова войти под пользователем git. Если вы сделали все правильно, то сервер не будет спрашивать ваш пароль от пользователя git. После этого вы сможете и в git работать без пароля.

Заключение

Если вам действительно нужен приватные Git репозитории, то содержать их на собственном VPS сервере — самый лучший, надежный и к тому же самый дешевый вариант. Ограничений по количеству репозиториев или пользователей нет, есть лишь ограничение места на жестком диске, которое можно увеличить перейдя на более дорогой тарифный план.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *