Установка gitolite на сервер Centos

в 12:35, , рубрики: Git, gitolite, метки:

Убил пару дней на установку Gitolite. Вроде куча инструкций в интернете, и процесс-то глобально не сложный. Но ни в одной статье нет полного порядка команд, которые надо проделать, чтобы все это дело заработало без проблем.

Подразумевается, что читатель понимает, что такое git и gitolite и умеет с ними работать, рассматривается только вопрос установки.

В коде надо заменить на ваши значения:
server_name_or_ip — Имя сервера или IP адрес
username — Имя пользователя, который станет администратором gitolite.

Операционные системы: сервер — Centos 6.6, компьютер с которого работаю — OS X 10.10.2

Настройка доступа по ключу

На сервере создадим юзера git и зададим ему пароль:

useradd git
passwd git

На локальной машине создаем ключ для текущего пользователя:

ssh-keygen -t dsa -b 1024

И отправляем ключ на сервер (вариант тестировался только на mac — но, вроде, линуксовый синтаксис не отличается):

cat ~/.ssh/id_dsa.pub | ssh git@server_name_or_ip "mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys"

Зададим на сервере права на папку .ssh и файл с ключами (без этого авторизация по ключу работать не будет):

chmod 700 /home/git/.ssh/
chmod 600 /home/git/.ssh/authorized_keys

Заходим на сервере в файл /etc/ssh/sshd_config (не путать с ssh_config) и раскомментируем строки:

RSAAutentification yes
PubkeyAutentification yes
AuthorizedKeysFile .ssh/authorized_keys

Перезапускаем на сервере демон sshd:

service sshd restart

Проверяем с локальной машины доступ по ssh без пароля:

ssh -i ~/.ssh/id_dsa  git@server_name_or_ip

Установка gitolite

На сервере:

su git
cd ~
git clone git://github.com/sitaramc/gitolite
mkdir -p ~/bin
gitolite/install -to ~/bin
gl-setup -q ~/username.pub

Далее заходим на сервере в файл /home/git/.ssh/authorized_keys и удаляем первый ключ, который был создан не gitolite — это важно, иначе ничего работать не будет (один из вариантов можно также просто использовать 2 разных ключа — главное понимать, что если есть ключ, который авторизует по SSH — то gitolite с ним же работать не будет).

Проверка работоспособности ключей (на сервере):

/home/git/gitolite/src/gitolite sshkeys-lint

Путь к репозиторию для администрирования gitolite:

git@server_name_or_ip:gitolite-admin

Для пущей безопасности закрываем доступ пользователю git по ssh. Оставляем только возможность работы с git. Для этого заходим в файл /etc/passwd и меняем строчку у пользователя git с /bin/bash на /usr/bin/git-shell

Если что-то пошло не так

Удаляем (на сервере) пользователя git:

userdel git

Удаляем все файлы из его папки и саму домашнюю директорию. У меня это /home/git/.

Пытаемся проделать все заново.

Автор: katzo

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js