Pull to refresh

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

Reading time2 min
Views6.5K
Убил пару дней на установку 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 rsa -b 2048

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

cat ~/.ssh/id_rsa.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/.

Пытаемся проделать все заново.
Tags:
Hubs:
Total votes 9: ↑4 and ↓5-1
Comments13

Articles