Установка git сервера на linux

How to Setup Git Server on Ubuntu?

Git is a popular version control system that is widely used for software development and other collaborative projects. Setting up a Git server on Ubuntu allows you to host Git repositories on your own server, which can be useful for collaborating with a team or hosting open-source projects that others can contribute to. Here, we will walk through the steps of setting up a Git server on Ubuntu 20.04 LTS. We will install Git, create a new user to manage the repositories, create a repository directory, initialize a new bare repository, and set the correct permissions on the repository so that other users can access it.

Steps to Setup Git Server on Ubuntu

Before we begin, make sure we have a clean installation of Ubuntu 20.04 LTS and that you are logged in as a user with Sudo privileges.

Step 1: Install Git.

The first step is to install Git on your Ubuntu server. To do this, open a terminal and enter the following command:

This will install the latest version of Git on your server. You can check that Git has been installed correctly by running the following command:

This should display the version number of Git that has been installed.

Step 2: Create a Git User.

Next, you need to create a new user account that will be used to manage the Git repositories. This is a best practice as it helps to keep the repositories separate from your main user account. To create a new user, enter the following command:

You will be prompted to enter a password and provide some personal information for the user. Once you have completed these steps, a new user will be created.

Step 3: Create a Repository Directory.

Next, you’ll need to create a new directory on your server where you can store your Git repositories. This is typically done in the /usr/local/ directory. You can create a new directory by running the following command:

Step 4: Change the ownership of the directory to the git user.

Now that you’ve created the directory for the Git repositories, you’ll need to change the ownership of the directory to the git user. This will ensure that the git user has the necessary permissions to read, write, and execute files in the directory. You can change the ownership of the directory by running the following command:

Step 5: Switch to the git user.

To complete the setup of the Git server, you’ll need to switch to the git user account. This can be done by running the following command:

You should now see the command prompt change to the git user’s account.

Step 6: Initialize a new bare repository.

A bare repository is a type of Git repository that does not contain a working tree (i.e. the files that you’re tracking in your repository). Instead, it only contains the Git metadata and history of the repository. This is the type of repository that you’ll use for your Git server. To initialize a new bare repository, run the following command in the /usr/local/git directory:

Читайте также:  Альт линукс kde plasma

This command will create a new bare repository named “myproject.git” in the /usr/local/git directory.

Step 7: Configure SSH access for the git user.

In order to clone and push to the repository, you need to configure SSH access for the git user. To configure SSH access, you’ll need to add the git user’s public key to the authorized_keys file in the git user’s .ssh directory. You can generate a new ssh key by running ssh-keygen -t rsa -b 4096 on your local machine, type the command:

In the above image you can see that we have created a ssh_public_key on your local system, this key is saved in /home/git/.ssh/id_rsa.pub. we will use this public key to authorize our server for the login. Now you need to go to the location where this key is present and using the cp command or clipboard simply copy the key and use the key in the next command as follows:

Then copy the contents of the public key file `~/.ssh/id_rsa.pub to the authorized keys file on the server by running the following command:

This will add your public key to the authorized_keys file, allowing you to connect to the server via SSH.

Step 8: Allow the git user to connect to the server via SSH.

Next, you will need to allow the git user to connect to the server via SSH. You can do this by adding the git user to the SSH AllowUsers list in the /etc/ssh/sshd_config file. Open the file by running sudo nano /etc/ssh/sshd_config and add the following line at the end of the file:

Step 9: Restart the SSH service.

After making the changes to the SSH configuration file, you’ll need to restart the SSH service for the changes to take effect. You can restart the SSH service by running the following command:

Step 10: Clone the repository from the server.

Finally, you can clone the repository from the server by running the following command on your local machine:

git clone git@server:/usr/local/git/myproject.git

In the above image, I have used my server IP address instead of the server name you can use it as per your choice. This command will clone the “myproject.git” repository from the server to your local machine. You can now make changes to the files in the repository and push those changes back to the server using the standard Git commands (i.e. git add, git commit, git push).

And that’s it! You have now successfully set up a Git server on your Ubuntu machine. You can now use this server to manage your own code repositories or share code with others. Keep in mind that you should secure your git server by configuring a firewall and other security measures, and you should also back up your git repositories regularly.

Conclusion

In this tutorial, we learned how to set up a Git server on Ubuntu 20.04 LTS. We installed Git, created a new user to manage the repositories, created a repository directory, initialized a new bare repository, and set the correct permissions on the repository so that other users can access it. By following these steps, you can host your own Git repositories on your Ubuntu server and collaborate with others on projects. setting up a Git server on Ubuntu is a relatively straightforward process that allows you to host Git repositories on your own server. By following the steps outlined in this tutorial, you can set up a Git server and start hosting your own repositories.

Читайте также:  Hp laserjet 3055 драйвер linux

It’s important to note that This guide is meant as a starting point, and there are many other configurations and options that you can explore to customize your Git server to your specific needs. For example, you may want to consider using Git hooks to automate certain tasks or use Git over SSH for secure communication. Additionally, for a big and more secure environment, it would be recommended to use Git server software like Gitlab, Gogs, and Bitbucket which are more feature rich and provide access control and other features out of the box.

Источник

4.2 Git на сервере — Установка Git на сервер

Рассмотрим теперь установку сервиса Git с поддержкой этих протоколов на сервер.

Здесь мы приводим команды и шаги, необходимые для базовой, упрощённой установки на Linux-сервер, но эти сервисы можно запустить и на MacOS или Windows сервере. На самом деле, установка боевого сервера в вашей инфраструктуре неминуемо будет иметь отличия в настройках безопасности или инструментах операционной системы, но мы надеемся дать вам общее понимание происходящего.

Для того чтобы приступить к установке любого сервера Git, вы должны экспортировать существующий репозиторий в новый голый репозиторий — репозиторий без рабочего каталога. Делается это просто. Чтобы создать новый голый репозиторий — во время клонирования используйте параметр —bare . По существующему соглашению, каталоги с голыми репозиториями заканчиваются на .git , например:

$ git clone --bare my_project my_project.git Cloning into bare repository 'my_project.git'. done.

Теперь у вас должна быть копия данных из каталога Git в каталоге my_project.git .

Грубо говоря, это эквивалентно команде:

$ cp -Rf my_project/.git my_project.git

Тут есть пара небольших различий в файле конфигурации, но в нашем случае эту разницу можно считать несущественной. В этом случае берётся репозиторий Git без рабочего каталога и помещается в отдельный каталог.

Размещение голого репозитория на сервере

Теперь, когда у вас есть голая копия вашего репозитория, осталось поместить её на сервер и настроить протоколы. Предположим, что вы уже настроили сервер git.example.com , имеете к нему доступ по SSH и хотите разместить все ваши репозитории Git в каталоге /srv/git . Считая, что /srv/git уже есть на сервере, вы можете добавить ваш новый репозиторий копированием голого репозитория:

$ scp -r my_project.git user@git.example.com:/srv/git

Теперь другие пользователи, имеющие доступ к серверу по SSH и права на чтение каталога /srv/git , могут клонировать ваш репозиторий выполнив команду:

$ git clone user@git.example.com:/srv/git/my_project.git

Если у пользователя есть права записи в каталог /srv/git/my_project.git , он автоматически получает возможность отправки изменений в репозиторий.

Git автоматически добавит права на запись в репозиторий для группы при запуске команды git init с параметром —shared . Следует отметить, что при запуске этой команды коммиты, ссылки и прочее удалены не будут.

$ ssh user@git.example.com $ cd /srv/git/my_project.git $ git init --bare --shared

Видите, как это просто, взять репозиторий Git, создать голую версию и поместить её на сервер, к которому вы и ваши коллеги имеете доступ по SSH. Теперь вы готовы работать вместе над одним проектом.

Читайте также:  Узнать внешний ip terminal linux

Важно отметить, что это практически всё, что вам нужно сделать, чтобы получить рабочий Git-сервер, к которому имеют доступ несколько человек — просто добавьте учетные записи с возможностью доступа по SSH на сервер и положите голый репозиторий в то место, к которому эти пользователи имеют доступ на чтение и запись. И всё.

Из нескольких последующих разделов вы узнаете, как получить более сложные конфигурации. В том числе как не создавать учётные записи для каждого пользователя, как сделать публичный доступ на чтение репозитория, как установить веб-интерфейс и др. Однако, помните, что для совместной работы пары человек на закрытом проекте, всё что вам нужно ― это SSH-сервер и голый репозиторий.

Малые установки

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

SSH доступ

Если у вас уже есть сервер, к которому все ваши разработчики имеют доступ по SSH, проще всего разместить ваш первый репозиторий там, поскольку вам не нужно практически ничего делать (как мы уже обсудили в предыдущем разделе). Если вы хотите более сложного управления правами доступа к вашим репозиториям, вы можете сделать это обычными правами файловой системы, предоставляемыми операционной системой вашего сервера.

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

Есть несколько способов предоставить доступ всем участникам вашей команды. Первый — создать учётные записи для каждого, это просто, но может быть весьма обременительно. Вероятно, вы не захотите для каждого пользователя выполнять adduser (или useradd ) и задавать временные пароли.

Второй способ — это создать на сервере пользователя git , попросить всех участников, кому требуется доступ на запись, прислать вам открытый ключ SSH и добавить эти ключи в файл ~/.ssh/authorized_keys в домашнем каталоге пользователя git . Теперь все будут иметь доступ к этой машине используя пользователя git . Это никак не повлияет на данные в коммите — пользователь, под которым вы соединяетесь с сервером по SSH, не воздействует на созданные вами коммиты.

Другой способ сделать это — настроить SSH сервер на использование аутентификации через LDAP-сервер или любой другой имеющийся у вас централизованный сервер аутентификации. Вы можете использовать любой механизм аутентификации на сервере и считать что он будет работать для Git, если пользователь может получить доступ к консоли по SSH.

Источник

Оцените статью
Adblock
detector