LINUX.ORG.RU

Настройка git репозитория через ssh & gitosis


0

1

Здравствуйте,

Делал как описано тут http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

Сервер gentoo. Клиент MAC OS X

1) git установил

emerge dev-util/git

2) поставил gitosis

cd ~/src

git clone git://eagain.net/gitosis.git

cd gitosis

python setup.py install

3) создал пользователя git

adduser --system --shell /bin/sh --comment 'git version control' --no-user-group --home-dir /home/git git

в /etc/shadow получили

git:!:14665::::::

4) На локальной машине (mac os x) выполнил (мой логин ipx, на сервере логин expert)

ssh-keygen -t dsa

полчил 2 файла

~/.ssh/id_dsa.pub

~/.ssh/id_dsa

5) Скопировал id_dsa.pub на сервер в мою домашнюю папку

~/.ssh/id_dsa.pub

Контент из файла

~/.ssh/id_dsa.pub перенес в файл ~/.ssh/authorized_keys

Далее сделал

cp ~/.ssh/id_dsa.pub /tmp/id_dsa.pub

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

6) В настройках sshd установил 2 параметра (/etc/ssh/sshd_config)

RSAAuthentication yes

PubkeyAuthentication yes

Полный конфиг выглядит так:

Protocol 2

RSAAuthentication yes

PubkeyAuthentication yes

PasswordAuthentication no

UsePAM yes

PrintMotd no

PrintLastLog no

Subsystem   sftp   /usr/lib64/misc/sftp-server

7) В локальных настройках

Host myserver.com.ua

User expert

Port 22

IdentityFile ~/.ssh/id_dsa

8) Подключение по ссш с помощью ключей прошло успешно

ssh expert@myserver.com.ua

9) Вот тут говорят что будет работать

git clone git@myserver.com.ua:gitosis-admin.git

cd gitosis-admin

ВНИМАНИЕ :) у меня попросило пароль. Но т.к. пользователю git пароль не задавали, то соответственно меня не пустило. Я так понимаю я где-то что-то упустил? Какой-то параметр в ssh?

Как должен ssh пустить юзера git без пароля? И ключ в ссш я создавал для своего пользователя а не для git, какую роль ключ тут играет?

Спасибо!

> ssh expert@myserver.com.ua

git clone git@myserver.com.ua:gitosis-admin.git


Проверь, для пользователя git публичная часть ключа прописана или нет (наверное, та же, что и для пользователя expert)

Slavaz ★★★★★ ()
Ответ на: комментарий от Slavaz

После команды sudo -H -u git gitosis-init < /tmp/id_dsa.pub

в файле /home/git/.ssh/authorized_keys лежит это

### autogenerated by gitosis, DO NOT EDIT command=«gitosis-serve git@srv02»,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA...Q== git@srv02

AAAA...Q — ключ

igor_ua ()
Ответ на: комментарий от PartyZan

Пароль не задавал при генерации ключей через

ssh-keygen -t dsa

igor_ua ()

А это опечатка надеюсь? Или действительно был сгенерирован DSA ключ, а гитозису пытался скормить несуществующий RSA?

cp ~/.ssh/id_dsa.pub /tmp/id_dsa.pub

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

PartyZan ★★★ ()

А где в локальных настройках блок для пользователя git? У меня это выглядит примерно так:

cat ~/.ssh/config
Host foobar.com
User git
Hostname foobar.com
PreferredAuthentications publickey,password
IdentityFile ~/.ssh/id_rsa

PartyZan ★★★ ()
Ответ на: комментарий от PartyZan

Видимо проблема была в том, что при первом gitosis init < /tmp/id_dsa.pub был импортирован не правильный ключ, а при втором (когда импортировался уже правильный ключ) gitosis все равно импортировал старый (первый ключ).

Все решилось так:

1) удалил gitosis

2) повторил все шаги, но уже при первом импорте указал верный ключ

3) добавил в ~/.ssh/config что-то типа Host foobar.com User git Hostname foobar.com PreferredAuthentications publickey,password IdentityFile ~/.ssh/id_rsa

и все отлично заработало.

igor_ua ()

man ssh-agent
man ssh-add
man ssh-copy-id

gitosis есть в портежах.

tensai_cirno ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.