На сервере Git размещается репозиторий проекта, содержащий исходный код и другие основные файлы. Хотя по большей части вы можете полагаться на всемирно известные сервисы хостинга Git, такие как GitHub, в некоторых случаях лучше разместить свой личный сервер Git для дополнительной конфиденциальности, настраиваемости и безопасность.
Давайте узнаем, как настроить частный сервер Git в Linux.
Предварительные условия для настройки сервера Git
Прежде чем приступить к настройке частного Git-сервера, у вас должен быть доступ к свободной машине или подписка на облачных провайдеров. Это важно, так как вы настроите запасной компьютер в качестве сервера Git, к которому вы будете подключаться со своего локального компьютера и выполнять операции Git.
Хотя четко определенных системных требований нет, одного гигабайта оперативной памяти должно быть достаточно для работы сервера Git. Кроме того, убедитесь, что на вашем компьютере запущен дистрибутив Linux.
Шаг 1. Загрузите и установите Git на сервер Linux.
Излишне говорить, что вам необходимо установить Git на ваш сервер Linux в качестве предварительного шага. Запустите терминал и используйте диспетчер пакетов вашего дистрибутива Linux для установки Git:
На производных Debian/Ubuntu:
Судо подходит установить мерзавец
На Дистрибутивы на основе Arch:
судо пакман -S git
В CentOS/RHEL/Fedora:
судо днф установить мерзавец
После установки Git в вашей системе перейдите к следующим шагам, чтобы настроить систему Linux для размещения ваших репозиториев Git в качестве сервера Git.
Шаг 2. Настройте учетную запись пользователя Git
Подключитесь к вашему серверу Linux через SSH, RDP или любой другой протокол удаленного доступа. Или, если вы используете запасной компьютер в качестве сервера, включите его и создайте новую учетную запись пользователя для управления вашими репозиториями.
ssh имя пользователя@адрес
sudo useradd git
После добавления нового пользователя переключитесь на него с помощью кнопки су команда:
су гит
Создание выделенного мерзавец учетная запись пользователя — это протокол безопасности, который гарантирует, что клиенты, подключающиеся к вашему Git-серверу, будут иметь ограниченную видимость и доступ к ресурсам на компьютере. Это позволяет вам безопасно сотрудничать в групповых проектах, где несколько членов команды будут иметь доступ к вашему серверу.
Шаг 3. Создайте каталог .ssh и добавьте авторизованные ключи
Создание .ssh каталог необходим для хранения открытых ключей и других важных данных, которые будут определять, кто получит доступ к этому серверу Git. Для начала войдите в созданную ранее учетную запись пользователя git, создайте каталог .ssh и ограничьте доступ только пользователю git:
ssh git@адрес
мкдир.ssh
чмод 700 .ssh/
коснитесь .ssh/authorized_keys
Защитите права доступа к каталогу с помощью chmod команду, чтобы гарантировать, что никто, кроме вас, не сможет внести в нее изменения. Двигайтесь в .ssh каталог и создайте новый файл "authorized_keys", используя трогать команда.
CD.ssh
ssh-keygen -t rsa #выполняйте эту команду, только если у вас НЕТ файла id_rsa.pub
кошкаid_rsa.паб
Вам нужно будет обновить этот файл с помощью открытых ключей SSH клиентов, которым вы хотите предоставить доступ к серверу Git. Приостановите сеанс SSH и откройте .ssh/id_rsa.pub файл на локальном компьютере с помощью текстового редактора или кошачья команда. Этот файл содержит ваш общедоступный зашифрованный ключ, который при записи в файл author_keys предоставит вам доступ к серверу Git без пароля.
CD.ssh
ви авторизованные_ключи
Скопируйте открытый ключ и установите новое SSH-соединение с сервером Git. Двигайтесь в .ssh каталог, откройте файл author_keys с помощью текстового редактора и вставьте открытый ключ. Сохранить изменения и выйти.
С этого момента вы сможете подключаться к серверу без пароля. Повторите этот шаг для каждой машины, которая будет подключаться к серверу.
Шаг 4: Создайте каталог для хранения всех ваших репозиториев
Получите доступ к серверу Linux и создайте каталог или используйте встроенный в качестве корневого каталога. Имейте в виду, что это каталог, в котором будут храниться все ваши репозитории. Это хорошая практика ради более аккуратной организации проектов.
mkdir имя_каталога
После создания каталога перейдите к последнему шагу в этом руководстве, чтобы завершить настройку сервера Git.
Шаг 5: Начните разработку, добавив новый проект
Теперь вы практически закончили настройку сервера Git. Теперь вам просто нужно начать разработку, инициализировав репозитории и добавив удаленный источник на локальный компьютер. Перейдите в родительский каталог с помощью CD команду и создать .git каталог проекта:
CD родительский_каталог
мкдирновый проект.git
Теперь инициализируйте голый репозиторий git:
git инициировать --голый
Когда репозиторий инициализирован, пришло время добавить удаленный источник на ваш локальный компьютер:
git удаленное добавление имени источника git@адрес:new_project.git
Это все, что вам нужно было сделать на стороне сервера. Теперь любой аутентифицированный клиент может выполнять обычные операции Git, такие как отправка, получение, слияние, клонирование и многое другое. Чтобы начать новые проекты, вам придется повторять этот шаг каждый раз, когда вы создаете новый проект.
Проверьте его функциональность, выполнив git push:
сенсорный тестовый файл
git добавить тестовый файл
git совершить -м "тестовый файл"
мастер имени git push
мерзавец клон git@адрес: new_project.git
Ваш файл будет успешно отправлен в удаленный источник. Чтобы перепроверить, сработала ли операция push, вы можете клонировать репозиторий, и вы должны найти тестовый файл в репозитории.
Советы по безопасности для вашего сервера Git
Когда сервер Git запущен и работает, вы должны обратить пристальное внимание на уровень его безопасности, поскольку он ваш личный сервер, и вы несете исключительную ответственность за его обслуживание и защиту от внешних угрозы. Вот некоторые из лучших методов обеспечения безопасности:
- Отключить вход по паролю
- Измените оболочку по умолчанию на git-shell. Это ограничивает вошедшего в систему пользователя от выдачи любой команды, отличной от git.
- Используйте пользовательский порт для SSH
- Отключить вход пользователя root
- Регулярно делайте резервные копии данных
Существует множество таких конфигураций безопасности и мер безопасности, которые вы можете реализовать на своем сервере Linux, чтобы защитить его от злоумышленников и предотвратить несанкционированный доступ.