Git сървърът хоства хранилището на проект, което съдържа изходния код и други основни файлове. Въпреки че в по-голямата си част можете да разчитате на световно известни Git хостинг услуги като GitHub, в някои случаи е по-добре да хоствате вашия личен Git сървър за допълнителна поверителност, възможност за персонализиране и сигурност.
Нека научим как можете да настроите частен Git сървър на Linux.
Предпоставки за настройка на Git сървър
Преди да започнете да настройвате своя частен Git сървър, трябва да имате достъп до резервна машина или трябва да сте абонирани за облачни доставчици. Това е важно, тъй като ще настроите резервната машина да действа като Git сървър, към който ще се свържете от вашата локална машина и ще извършвате Git операции.
Въпреки че няма добре дефинирани системни изисквания, един гигабайт RAM би трябвало да е достатъчен, за да функционира Git сървърът. Освен това се уверете, че имате инсталирана и работеща Linux дистрибуция на машината.
Стъпка 1: Изтеглете и инсталирайте Git на Linux сървъра
Излишно е да казвам, че трябва да имате инсталиран Git на вашия Linux сървър като предварителна стъпка. Стартирайте терминал и използвайте мениджъра на пакети на вашата Linux дистрибуция, за да инсталирате Git:
На производни на Debian/Ubuntu:
sudo apt Инсталирай git
На Арх-базирани дистрибуции:
sudo pacman -S git
На CentOS/RHEL/Fedora:
sudo dnf Инсталирай git
След като Git е инсталиран на вашата система, преминете към следващите стъпки, за да конфигурирате вашата Linux система да хоства вашите Git хранилища като Git сървър.
Стъпка 2: Настройте потребителски акаунт в Git
Свържете се с вашия Linux сървър чрез SSH, RDP или всеки друг протокол за отдалечен достъп. Или, ако използвате резервен компютър като сървър, включете го и създайте нов потребителски акаунт, който да управлява вашите хранилища.
ssh потребителско име@адрес
sudo useradd git
След като бъде добавен новият потребител, превключете към него с помощта на су команда:
su git
Създаване на посветен git потребителският акаунт е протокол за безопасност, който гарантира, че клиентите, свързващи се с вашия Git сървър, ще имат ограничена видимост и достъп до ресурсите на машината. Това ви позволява безопасно да си сътрудничите в групови проекти, където множество членове на екипа ще имат достъп до вашия сървър.
Стъпка 3: Създайте .ssh директория и добавете оторизирани ключове
Създаване на a .ssh директорията е необходима за съхраняване на публични ключове и други съществени данни, които ще определят кой ще получи достъп до този Git сървър. Като начало влезте в git потребителския акаунт, който сте създали преди това, създайте .ssh директория и ограничете достъпа само до git потребителя:
ssh git@адрес
mkdir.ssh
chmod 700 .ssh/
докоснете .ssh/authorized_keys
Осигурете разрешенията за достъп до директория с помощта на chmod команда, за да сте сигурни, че никой освен вас не може да прави промени в нея. Преместете се в .ssh и създайте нов файл "authorized_keys", като използвате докосване команда.
cd.ssh
ssh-keygen -t rsa #стартирайте тази команда само ако НЯМАТЕ файл id_rsa.pub
коткаid_rsa.pub
Ще трябва да актуализирате този файл с SSH публичните ключове на клиентите, на които искате да дадете достъп до Git сървъра. Прекъснете SSH сесията и отворете .ssh/id_rsa.pub файл във вашата локална машина с помощта на текстов редактор или командата котка. Този файл съдържа вашия публичен криптиран ключ, който, когато бъде записан във файла authorized_keys, ще ви предостави достъп до Git сървъра без парола.
cd.ssh
vi упълномощени_ключове
Копирайте публичния ключ и завъртете нова SSH връзка към Git сървъра. Преместете се в .ssh директория, отворете файла authorized_keys с текстов редактор и поставете публичния ключ. Запазете промените и излезте.
От този момент нататък трябва да можете да се свързвате със сървъра без парола. Повторете тази стъпка за всяка машина, която ще се свързва към сървъра.
Стъпка 4: Създайте директория за съхраняване на всички ваши хранилища
Влезте в сървъра на Linux и създайте директория или използвайте вградена като основна директория. Имайте предвид, че това е директорията, в която ще се съхраняват всички ваши хранилища. Това е добра практика в името на по-изчистената организация на проектите.
mkdir име_на_директория
След като създадете директорията, преминете към последната стъпка в това ръководство, за да завършите настройката на Git сървъра.
Стъпка 5: Започнете разработката чрез добавяне на нов проект
Вече на практика сте готови с настройката на Git сървъра. Сега просто трябва да започнете разработката, като инициализирате хранилища и добавите отдалечения произход към вашата локална машина. Преместете се в родителската директория, като използвате cd команда и създайте a .git директория на проекта:
cd родителска_директория
mkdirнов проект.git
Сега инициализирайте голо git хранилище:
git init --голи
След като хранилището е инициализирано, е време да добавите отдалечения произход на вашата локална машина:
git дистанционно добавяне на име на произход git@адрес:нов_проект.git
Това е всичко, което трябваше да направите от страна на сървъра. Сега всеки удостоверен клиент може да извършва редовни операции на Git като натискане, изтегляне, сливане, клониране и други. За да започнете нови проекти, ще трябва да повтаряте тази стъпка всеки път, когато създавате нов проект.
Тествайте неговата функционалност, като изпълните git push:
докоснете тестов файл
git добави тестов файл
git commit -m "тестов файл"
git push име master
git клонинг git@адрес: нов_проект.git
Вашият файл ще бъде успешно изпратен до отдалечения източник. За да проверите дали операцията за натискане е работила, можете да клонирате хранилището и трябва да намерите тестовия файл в хранилището.
Съвети за сигурност за вашия Git сървър
След като Git сървърът е готов и работи, трябва да обърнете голямо внимание на състоянието му на сигурност, както е вашия личен сървър и е ваша единствена отговорност да го поддържате и защитавате от външни заплахи. Някои от най-добрите практики за сигурност, които трябва да приемете, са:
- Деактивирайте влизането с парола
- Променете обвивката по подразбиране на git-shell. Това ограничава влезлия потребител от издаване на команда, различна от git
- Използвайте персонализиран порт за SSH
- Деактивирайте влизането на root потребител
- Редовно архивирайте данните
Има много такива конфигурации за сигурност и мерки за безопасност, които можете да приложите на вашия Linux сървър, за да го защитите от нападатели и да предотвратите неоторизиран достъп.