Настройте Git Server с SSH в Ubuntu

Если над некоторыми проектами работает небольшое количество членов команды, вы можете настроить сервер Git через SSH в своем офисе и очень легко работать над проектами в команде. В этом случае вам не нужно использовать GitHub или какие-либо другие сервисы. Сервер Git на основе SSH действительно прост в настройке и использовании. В этой статье я покажу вам, как настроить сервер Git с SSH в Ubuntu и как его использовать. Итак, приступим.

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

$ sudo apt update

Кэш репозитория пакетов APT должен быть обновлен.

Теперь установите сервер OpenSSH и Git с помощью следующей команды:

$ sudo apt install openssh-server git

Теперь нажмите Y и затем нажмите , чтобы подтвердить установку.

Сервер OpenSSH и Git должны быть установлены.

Теперь создайте нового пользователя git с помощью следующей команды:

$ sudo useradd —create-home —s hell/bin/bash git

Все репозитории Git будут сохранены в домашнем каталоге пользователя git /home/git .

Теперь войдите как пользователя git с помощью следующей команды:

$ sudo su — git

Теперь создайте новый каталог .ssh с помощью следующей команды :

$ mkdir .ssh

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

$ chmod 700 .ssh/

Как видите, пользователь git имеет только права на чтение (r), запись (w), выполнение (x). в каталоге .ssh/.

$ ls -ld .ssh/

Теперь создайте новый пустой файл .ssh/authorized_keys следующим образом:

$ touch .ssh/authorized_keys

Разрешить чтение и запись в файл только от пользователя git следующим образом:

$ chmod 600 .ssh/authorized_keys

Как видите, только пользователь git имеет права на чтение (r) и запись (w) в файл . ssh/authorized_keys .

В .ssh/authorized_keys , вам необходимо добавить открытый ключ пользователей, которым вы хотите получить доступ к репозиториям Git на сервере Git.

Добавление открытого ключа клиента на сервер Git:

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

Клиент может создайте пару открытого и закрытого ключей следующим образом:

$ ssh-keygen

Нажмите .

Нажмите .

Нажмите .

Нажмите .

Теперь клиент может найти его/ее открытый ключ:

$ cat ~/.ssh/id_rsa.pub

Должен быть напечатан открытый ключ клиента. Теперь клиент может отправить этот открытый ключ менеджеру (который управляет сервером Git). Затем менеджер может добавить открытый ключ на сервер Git. Затем клиент может получить доступ к серверу Git.

Скажем, , клиент отправил свой открытый ключ менеджеру сервера Git. Менеджер загрузил открытый ключ в файл /tmp/shovon-key.pub на сервере Git.

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

$ cat/tmp/shovon-key.pub >> ~/.ssh/authorized_keys

Теперь файл .ssh/authorized_keys должен содержать открытый ключ клиента.

Создание репозиториев Git на сервере:

Клиенты не могут создавать новые Git репозитории на сервере. Менеджер сервера Git должен создать репозиторий на сервере. Затем клиенты могут клонировать, отправлять/извлекать из репозитория.

Теперь создайте новый пустой репозиторий Git testrepo на сервере Git следующим образом:

$ git init —bare testrepo

Теперь клиенту нужно знать только IP-адрес сервера Git, чтобы получить доступ к репозиторию Git testrepo ..

Диспетчер серверов Git может найти эту информацию следующим образом:

$ ip a

Как видите, IP-адрес сервера Git — 192.168.21.185 . Теперь менеджер сервера может сообщить об этом клиентам, которые будут работать над проектом.

Клонирование репозитория Git с сервера:

Как только клиент узнает IP-адрес и имя репозитория Git, он/она может клонировать его на свой компьютер следующим образом :

$ git clone git@192.168.21.185: ~/> testrepo

Теперь введите yes и нажмите . Вам нужно будет сделать это один раз, только в первый раз.

Репозиторий Git testrepo следует клонировать с сервера.

Должен быть создан новый каталог testrepo .

Внесение изменений и отправка изменений на сервер Git:

Теперь клиент может добавлять коммиты в testrepo / и отправьте изменения на сервер Git.

$ cd testrepo/

$ echo «Hello world»> test.txt

$ git add.

$ git commit -m ‘начальная фиксация’
[/cc [

Добавление нового члена команды:

Теперь, скажем, bob хочет внести свой вклад в репозиторий Git testrepo .

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

$ ssh-keygen

Как только диспетчер серверов Git получит открытый ключ bob , он может загрузить его на сервер Git и добавить в .ssh/authorized_keys следующим образом:

$ cat/tmp/bob-key.pub >> ~/.ssh/authorized_keys

А теперь, боб можно клонировать репозиторий Git testrepo из сервер следующим образом:

$ git clone git@192.168.21. 185: ~/testrepo

testrepo следует клонировать.

На компьютере Боба должен быть создан новый каталог testrepo .

Теперь Боб может перейти в репозиторий Git следующим образом:

$ cd testrepo/

Он должен найти некоторые существующие коммиты.

$ git log

Теперь bob может делать свою работу и фиксировать ее. Затем отправьте изменения на сервер.

$ echo «Hello World 2» >> test.txt

$ git add.
$ git commit -m ‘Измененное сообщение ‘

$ git push origin

Теперь, другие люди работая с одним и тем же репозиторием, можно получить изменения следующим образом:

$ git pull origin

Она должна найти коммиты, сделанные bob .

Итак, вот как вы настраиваете сервер Git с SSH в Ubuntu и используете его. Спасибо, что прочитали эту статью.

Оцените статью
nanomode.ru
Добавить комментарий