3

Я установил git и gitosis, как описано здесь в этом руководстве. Вот шаги, которые я предпринял:

Сервер: Gentoo
Клиент: MAC OS X

1) git install

emerge dev-util/git

2) Гитоз установить

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, логин сервера - эксперт)

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) Добавлены 2 параметра в /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes

Полный sshd_config:

Protocol 2
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
UsePAM yes
PrintMotd no
PrintLastLog no
Subsystem   sftp   /usr/lib64/misc/sftp-server

7) Локальные настройки в файле ~/.ssh/config:

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

SSH спросил пароль для пользователя git. Почему ssh должен позволять мне входить в систему как пользователь git? У пользователя git нет пароля. Ключ ssh, который я создал, предназначен для эксперта пользователя. Как это должно работать?

Должен ли я добавить некоторые параметры в sshd_config?

3 ответа3

2

В качестве уведомления для любого, кто найдет этот вопрос в будущем, я хотел бы отметить, что большинство людей в git-сообществе объявили, что gitosis объявлен устаревшим, и, как представляется, его автор отказался от него.

Gitolite стал его преемником и единодушно согласен превосходить его во всех отношениях, главное из которых - простота использования, устранение неполадок и отладка.

0

Похоже, вы пропустили пару шагов от гида. После настройки ключей SSH он говорит:

Далее мы запустим команду, которая добавит немного магии в домашний каталог пользователя git и поместит ваш открытый ключ SSH в список авторизованных ключей.

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

а также...

Для большей уверенности давайте удостоверимся, что хук после обновления установлен как исполняемый. Я видел это там, где иногда это не устанавливается (проблема со старыми настройками):

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

тогда вы хотите сделать шаг, с которым у вас были проблемы:

git clone git@YOUR_SERVER_HOSTNAME:gitosis-admin.git
cd gitosis-admin
0

На шаге 5 вам не нужно добавлять ключ в файл ~/.ssh/authorized_keys самостоятельно ... Gitosis-init сделает это за вас.

А на стороне клиента в файле ~/.ssh/config настройки должны быть такими:

Host myserver.com.ua
User git
Port 22
IdentityFile ~/.ssh/id_dsa

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .