Как установить и настроить сервер Git в Linux

12 set 2022 3 min di lettura
Как установить и настроить сервер Git в Linux
Indice dei contenuti

Введение

Когда дело доходит до хостинга Git, доступно несколько вариантов. GitHub, Gitlab и Bitbucket — популярные решения, но использование собственного сервера Git — альтернатива, которую стоит рассмотреть.

Настройка сервера Git позволяет создавать частные репозитории без ограничений бесплатных планов провайдеров. В этом руководстве мы объясним, как настроить голый сервер Git в Linux. Эта настройка хороша, если у вас мало репозиториев, а участники разбираются в технологиях. Если нет, вам следует подумать об установке собственного приложения git, такого как Gitea, Gogs или Gitlab.

Сервер Git можно настроить на любом удаленном компьютере с Linux или даже в вашей локальной системе.

Настроить Git-сервер

Первый шаг — установить Git на свой сервер.

Если вы используете Debian или Ubuntu, обновите локальный индекс пакетов и установите git, выполнив следующие команды от имени пользователя sudo:

sudo apt update && sudo apt install git

Чтобы установить пакет git на сервере CentOS, введите:

sudo yum install git

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

sudo useradd -r -m -U -d /home/git -s /bin/bash git

Домашний каталог пользователя установлен в /home/git. Все репозитории будут храниться в этом каталоге. Мы не устанавливали пароль для пользователя «git», доступ будет возможен только с использованием ключей ssh.

Переключитесь на пользователя «git» с помощью команды su:

sudo su - git

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

mkdir -p ~/.ssh && chmod 0700 ~/.ssh

Создайте файл с именем ~/.ssh/authorized_keys, который будет содержать SSH-ключи авторизованных пользователей:

touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys

Это все. Установка сервера завершена. Теперь вы готовы создать свой первый репозиторий Git.

Выполните следующую команду, чтобы запустить новый пустой репозиторий:

git init --bare ~/projectname.git

Вы можете назвать каталог как хотите. Важно создать репозиторий в домашнем каталоге пользователя git.

Initialized empty Git repository in /home/git/projectname.git/

Настройте локальный репозиторий Git

Чтобы отправить локальные изменения git на сервер Git, вам необходимо добавить открытый ключ SSH локального пользователя в файл authorized_keys удаленного пользователя «git».

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

cat ~/.ssh/id_rsa.pub

Вывод должен выглядеть так:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]

Если вы получаете сообщение об ошибке No such file or directory, это означает, что на локальном компьютере не была сгенерирована пара ключей SSH.

Чтобы сгенерировать новую пару ключей SSH, используйте следующую команду:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Скопируйте вывод приведенной выше команды cat и вернитесь в консоль сервера Git.

На сервере откройте текстовый редактор и вставьте скопированный с локального компьютера публичный ключ в ~/.ssh/authorized_keys:

vi /home/git/.ssh/authorized_keys

Весь текст открытого ключа должен быть на одной строке.

Предположим, что пакет Git уже установлен на вашем локальном компьютере. Если нет, установите его, как описано в предыдущих разделах.

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

cd /path/to/local/project

Инициализируйте репозиторий git:

git init.

Последний шаг — добавить git remote в локальный репозиторий:

git remote add origin git@git_server_ip:projectname.git

Не забудьте заменить git_server_ip на имя хоста или IP-адрес сервера Git.

Чтобы убедиться, что все настроено правильно, создайте тестовый файл:

touch test_file

Добавьте изменения в тестовую область:

git add.

Подтвердить изменения:

git commit -m "descriptive message"

Отправить изменения в локальный репозиторий в удаленном репозитории:

git push -u origin master

Если все настроено правильно, вывод должен выглядеть так:

Counting objects: 3, done.
 Writing objects: 100% (3/3), 218 bytes | 218.00 KiB/s, done.
 Total 3 (delta 0), reused 0 (delta 0)
 To git_server_ip:projectname.git
 * [new branch] master -> master
 Branch 'master' set up to track remote branch 'master' from 'origin'.

Чтобы добавить нового соавтора, просто скопируйте его публичный SSH-ключ в ~/.ssh/authorized_keys пользователя «git».

Вы можете использовать те же шаги для создания новых репозиториев. Важно отметить, что удаленный репозиторий должен существовать до добавления git remote в локальный репозиторий.

Вывод

В этом руководстве мы показали вам, как настроить частный сервер Git и создать репозитории.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.