Git Сервер
На сервере и на клиенте:
# vi /etc/hosts
192.168.1.25 gitserv.localdomain gitserv
192.168.1.25 gitclient.localdomain gitclient
-------------------------------------
# service iptables stop
# chkconfig iptables off
# yum install -y \
git \
openssh-clients
На сервере:
# groupadd git
# useradd \
-g git \
-d /home/git \
-m git \
-s /bin/bash
# passwd git
$ su git
$ mkdir -p ~/.ssh
# mkdir -p /opt/git/projects/sysadm.ru.git
# chown -R git:git /opt/git/projects/sysadm.ru.git
# su - git
# cd /opt/git/projects/sysadm.ru.git
# git --bare init
Initialized empty Git repository in /opt/git/projects/sysadm.ru.git/
На клиенте:
Создаем ssh ключ
$ mkdir -p ~/.ssh
$ cd ~/.ssh
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/git/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/git/.ssh/id_rsa.
Your public key has been saved in /home/git/.ssh/id_rsa.pub.
The key fingerprint is:
8d:51:a8:c9:47:d7:87:1f:0d:b6:ec:fb:52:0a:78:2c [email protected]
The key's randomart image is:
+--[ RSA 2048]----+
| ... .oo |
| o.. ooo..|
| . +.. oo. |
| + .+ .. |
| .S .o . |
| E + ..|
| o ..o |
| o. |
| ..|
+-----------------+
$ ls
id_rsa id_rsa.pub
Файл с расширением .pub — это ваш открытый ключ, а второй файл — ваш секретный ключ.
$ mv id_rsa.pub id_rsa.marley.pub
$ scp id_rsa.marley.pub git@gitserv:/tmp
На сервере:
$ cat /tmp/id_rsa.marley.pub >> ~/.ssh/authorized_keys
На клиенте:
$ mkdir -p /home/projects/sysadm.ru
$ cd /home/projects/sysadm.ru
$ git init
$ echo "sysadm.ru" >> info.txt
$ git add .
$ git commit -m 'initial commit'
$ git remote add origin git@gitserv:/opt/git/projects/sysadm.ru.git
$ git push origin master
Скачиваю git вношу изменения в файл и отправляю изменения на сервер.
$ git clone git@gitserv:/opt/git/projects/sysadm.ru.git
$ git commit -am 'fix for the README file'
$ git push origin master
На сервере.
Ограничиваем возможности пользователя 'git' только действиями, связанными с Git'ом, с помощью ограниченной оболочки git-shell
vi /etc/passwd
git:x:500:500::/home/git:/usr/bin/git-shell