2013-06-04 2 views
2

Пожалуйста, помогите мне понять, что я делаю неправильно. У меня есть сервер на CentOS 6.4, и мне нужно установить gitolite v3. Что я делаю? поначалу я устанавливаю один, используя следующую команду:Установите gitolite v3 на Centos 6.4. Второй пользователь спрашивает пароль

yum install git* perl-Time-HiRes 

useradd -m --system --shell /bin/bash --user-group gitolite 

su - gitolite 

mkdir bin 


echo "PATH=$HOME/bin:$PATH" > .bash_profile 

source .bash_profile 

ssh-keygen -t rsa 

cp .ssh/id_rsa.pub ./gitolite.pub 

git clone git://github.com/sitaramc/gitolite 

gitolite/install -ln 

gitolite setup -pk gitolite.pub 

Установка прошла успешно. Чем я клонировать gitolite-администратора репозиториев:

git clone gitadmin:gitolite-admin 
cd gitolite-admin/keydir 

и генерировать открытый ключ для нового пользователя (lodar.pub)

ssh-keygen -t rsa -f lodar 
mv ./lodar ../../.ssh/lodar 

чем я редактировать Conf/gitolite.conf:

repo gitolite-admin 
    RW+ = gitolite 
repo testing 
    RW+ = @all 
repo empty 
    RW+ = lodar 

Зафиксировать все изменения:

git add keydir/lodar.pub 
git commit -m 'add user lodar and new repo empty' 
git push 

И это все. Push был успешным. После всех манипуляций я создал .ssh/конфигурации

Host gitadmin 
    User gitolite 
    Hostname 192.168.0.1 
    Port 22 
    IdentityFile ~/.ssh/gitolite 

Host gitlodar 
    User gitolite 
    Hostname 192.168.0.1 
    Port 22 
    IdentityFile ~/.ssh/lodar 

Но если я пытаюсь подключиться с помощью

ssh gitlodar info 
[email protected]'s password: 

я должен ввести пароль.

ssh gitadmin info 
hello, gitolite, this is [email protected] running gitolite3 v3.5.1-4-g2f48a3e on git 1.7.1 
R W gitolite-amdin 
R W testing 

Что я делаю неправильно?

+0

Я понимаю, что вы имели в виду 'cp', а не' mv', но я могу * заверить, что пользователь должен быть 'gitolite' в вашем файле' ~/.ssh/config', как указано в моем ответе ниже. Всегда 'gitolite'. – VonC

ответ

1

Вы сделали:

mv ./lodar ../../.ssh/lodar 

Я должен ты имел в виду

cp ./lodar.pub ../../.ssh/ 
mv ./lodar  ../../.ssh/ 

Потому что, если вы не скопировать открытый ключ в ~/.ssh, вы не сможете использовать его в SSH сессия.

Но другая ошибка в вашем ~/.ssh/config файле:

Host gitlodar 
    User gitolite   # not loadar! 
    Hostname 192.168.0.1 
    Port 22 
    IdentityFile ~/.ssh/lodar 

Смотрите «How do programs like gitolite work?»:
Идея заключается в том, чтобы всегда использовать же пользователю подключаться к серверу gitolite (в вашем case, подключитесь как 'gitolite') и откройте * неинтерактивную оболочку.
Силовая команда ssh line вызовет сценарий gitolite с параметром, представляющим имя пользователя (здесь 'loadar'), потому что это имя зарегистрировано открытым ключом в ~gitolite/.ssh/authorized_keys.

1
$pwd 
/home/lodar/gitolite-admin/keydir  
$ssh-keygen -t rsa -f lodar 

Последняя команда сгенерировала два ключа: public (lodar.pub) и private (lodar). Я переместил закрытый ключ в .sh на моем клиентском компьютере. Общественный остался в keydir.

$mv ./lodar ../../.ssh/lodar 

Именно поэтому после того, как пользователь «git push» lodar добавлен в giotlite repo.Я проверил его на сервере по команде

$gitolite sshkeys-lint 
sshkeys-lint: === checking authkeys file: 
sshkeys-lint: === checking pubkeys: 
sshkeys-lint: === gitolite.pub maps to user gitolite 
sshkeys-lint: === lodar.pub maps to user lodar 

ВЫ ПРАВИЛЬНО. Моя ошибка была в MY .ssh/config. Спасибо за помощь. теперь он отлично работает.

+0

Справа. +1. Я добавил правильные команды cp/mv в свой ответ для большей видимости. – VonC

+0

Большое спасибо. Я исправлю свой первый пост и переименую его в «How-to install gitolite» для других людей. – wondertalik

Смежные вопросы