Как построить склад Git-версии на сервере (галантерея)

задняя часть сервер Git SSH

1. Сформулируйте свои мысли (очень важно!!!)


Он в основном разделен на два аспекта: хранилище Git и библиотеку проектов (нарисовано с помощью инструмента рисования, используемого для изображения, слишком низко....)

1. Вам необходимо иметь репозиторий Git (провайдер) на вашем сервере

2. Локальное хранилище, хранилище ваших серверных проектов или другие хранилища серверов (фактические пользователи), библиотеки, разработанные или онлайн.

2. Процесс строительства

Мой сервер: Версия CentOS6.* (не знаю, есть ли изменения выше 7.0, можете наступить на яму)

1. Установите git на сервер

# yum install -y git

执行命令之后,可以查看一下版本

$ git --version

[root@iZ2zeftluibm3hesz36v3tZ ~]# git --version
git version 1.7.1

2. После завершения установки необходимо создать пользователя на сервере для управления складом Git и установить пароль (я устанавливаю пользователя с именем git)

Проверьте, есть ли пользователь git

[root@iZ2zeftluibm3hesz36v3tZ ~]# id git

Добавьте пользователя git

[root@iZ2zeftluibm3hesz36v3tZ ~]# useradd git

Установить пароль для пользователя git

passwd git

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

Хорошо, тогда мы сначала создадим каталог для склада

[root@iZ2zeftluibm3hesz36v3tZ home]# mkdir -p test/git

Затем вы можете создать свой новый адрес проекта в этом каталоге.

[root@iZ2zeftluibm3hesz36v3tZ git]# mkdir -p aa.git

Взгляните после завершения создания

[root@iZ2zeftluibm3hesz36v3tZ git]# ll
total 12
drwxr-xr-x 2 root root 4096 Feb  2 15:04 aa.git
drwxrwxrwx 7 git  git  4096 Jan  4 14:38 gittest.git
drwxrwxrwx 8 git  git  4096 Jan  4 14:34 shop.git

Затем вам нужно инициализировать проект (следующим образом, не забывайте напрямую запускать git init)

[root@iZ2zeftluibm3hesz36v3tZ git]# git init --bare aa.git
Initialized empty Git repository in /home/test/git/aa.git/

Как вы можете видеть выше, aa.git принадлежит пользователю root, теперь измените его на пользователя git (если вы создали другого пользователя, измените его на другие права пользователя)

[root@iZ2zeftluibm3hesz36v3tZ git]# chown -R git:git aa.git/
[root@iZ2zeftluibm3hesz36v3tZ git]# ll
total 12
drwxr-xr-x 7 git git 4096 Feb  2 15:06 aa.git
drwxrwxrwx 7 git git 4096 Jan  4 14:38 gittest.git
drwxrwxrwx 8 git git 4096 Jan  4 14:34 shop.git

Git-репозиторий вышеуказанного сервера создан, далее нам нужно клонировать локально (для использования в разработке) и клонировать каталог хранения проекта (тестовая библиотека или библиотека проекта) на сервере.

3. Процесс настройки локального хранилища, серверного (тестового) хранилища и .ssh

1. Хорошо, теперь в вашей локальной области выберите каталог в качестве локального репозитория проекта разработки (39.105.78.33 — это внешний сетевой IP-адрес вашего сервера).Вы также можете преобразовать его в доменное имя.

Administrator@EZ-20170308TRRH MINGW64 /d/test
$ git clone git@39.105.78.33:/home/test/git/aa.git
Cloning into 'aa'...
warning: You appear to have cloned an empty repository.

Если вы обнаружите, что не можете клонировать с ошибкой, это потому, что вы не настроили ключ ssh (мой уже настроен, так что это удалось напрямую)

2. Хорошо, теперь начинаем настраивать ssh, в вашем локальном домашнем каталоге открываем Git Bash

$ ssh-keygen -t rsa -C "test.name@email"

Выполните эту команду, а затем вы полностью глупо подтвердите (Да)

Затем вы обнаружите, что в пути C:\Users\Administrator\.ssh будет

закрытый ключ id_rsa

открытый ключ id_rsa.pub

После генерации на стороне вашего сервера

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# cd /etc/ssh

[root@iZ2zeftluibm3hesz36v3tZ ssh]# vim sshd_config

Закомментируйте следующие три

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Сохраните и перезапустите службу sshd:

[root@iZ2zeftluibm3hesz36v3tZ ssh]# /etc/rc.d/init.d/sshd restart

Давайте посмотрим сейчас

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# cd ~
[root@iZ2zeftluibm3hesz36v3tZ ~]# ll -a

Затем вы обнаружите, что есть .ssh.Если вам нужно использовать определенную папку в проекте в качестве каталога проекта, вам нужно настроить открытый ключ на сервере на разрешения пользователя git, который является пользователем git мы создали .authorized_keys в .ssh

[root@iZ2zeftluibm3hesz36v3tZ ~]# ssh-keygen -t rsa -C '你的邮箱'
[root@iZ2zeftluibm3hesz36v3tZ ~]# cd .ssh/
[root@iZ2zeftluibm3hesz36v3tZ .ssh]# ll -a
total 20
drwx------  2 root root 4096 Jan  2 18:40 .
dr-xr-x---. 7 root root 4096 Jan 30 20:39 ..
-rw-------  1 root root    0 Dec 25 19:41 authorized_keys
-rw-------  1 root root 1675 Jan  2 18:08 id_rsa
-rw-r--r--  1 root root  402 Jan  2 18:08 id_rsa.pub
-rw-r--r--  1 root root  394 Jan  2 17:34 known_hosts
[root@iZ2zeftluibm3hesz36v3tZ .ssh]# 

И адреса, куда наши гит пользователи собственно кладут публичный ключ здесь нет, здесь просто публичный ключ вашего сервера

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

[root@iZ2zeftluibm3hesz36v3tZ git]# pwd
/home/git

создать.ssh

[root@iZ2zeftluibm3hesz36v3tZ git]# mkdir .ssh

[root@iZ2zeftluibm3hesz36v3tZ git]# ll -a
total 12
drwxr-xr-x  3 root root 4096 Jan  2 17:23 .
drwxr-xr-x. 4 root root 4096 Jan  2 17:22 ..
drwx------  2 root root 4096 Jan 30 20:39 .ssh
[root@iZ2zeftluibm3hesz36v3tZ git]#

Теперь то, что вы видите, должно быть группой разрешений root, теперь вам нужно перейти на разрешения git.

[root@iZ2zeftluibm3hesz36v3tZ git]# chown -R git:git .ssh

[root@iZ2zeftluibm3hesz36v3tZ git]# ll -a
total 12
drwxr-xr-x  3 root root 4096 Jan  2 17:23 .
drwxr-xr-x. 4 root root 4096 Jan  2 17:22 ..
drwx------  2 git  git  4096 Jan 30 20:39 .ssh

Затем мы возвращаемся к нашему локальному Git Bash и импортируем локальные author_keys на сервер.

Administrator@EZ-20170308TRRH MINGW64 /d/test
$ ssh git@39.105.78.33 'cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

Теперь вы можете взглянуть

[root@iZ2zeftluibm3hesz36v3tZ git]# cd .ssh/
[root@iZ2zeftluibm3hesz36v3tZ .ssh]# ll -a
total 12
drwx------ 2 git  git  4096 Jan 30 20:39 .
drwxr-xr-x 3 root root 4096 Jan  2 17:23 ..
-rw------- 1 git  git  1191 Jan 10 20:41 authorized_keys
权限修改,很重要
[root@iZ2zeftluibm3hesz36v3tZ git]# chmod 700 .ssh
[root@iZ2zeftluibm3hesz36v3tZ git]# ll -a
total 12
drwxr-xr-x  3 root root 4096 Jan  2 17:23 .
drwxr-xr-x. 4 root root 4096 Jan  2 17:22 ..
drwx------  2 git  git  4096 Jan 30 20:39 .ssh

[root@iZ2zeftluibm3hesz36v3tZ .ssh]# chmod 600 authorized_keys
[root@iZ2zeftluibm3hesz36v3tZ .ssh]# ll -a
total 12
drwx------ 2 git  git  4096 Jan 30 20:39 .
drwxr-xr-x 3 root root 4096 Jan  2 17:23 ..
-rw------- 1 git  git  1191 Jan 10 20:41 authorized_keys

С помощью этого файла вы можете настроить свой ключ (C:\Users\Administrator\.ssh) или чужой ключ в этом месте, и теперь вы можете клонировать проект.

Кроме того, созданный вами пользователь git может использовать ssh для входа на сервер, если вы хотите его забанить

[root@iZ2zeftluibm3hesz36v3tZ /]# vim /etc/passwd

Внесите следующие изменения

git:x:500:500::/home/git:/bin/bash

git:x:500:500::/home/git:/bin/bash-shell

В основном это здесь. Что с этим не так? Надеюсь, вы можете оставить сообщение. Если у вас есть какие-либо вопросы, вы можете оставить сообщение. Я в основном отвечу на него после того, как увижу его. Люди объяснили.