Я установил мерзавца, и gitosis, как описано здесь в этом руководстве Здесь являются шагами, которые я сделал:
Сервер: хинду
Клиент: Mac OS X
1) установка мерзавца
emerge dev-util/git
2) установка gitosis
cd ~/src
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install
3) добавленный пользователь мерзавца
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 попросила у пароля пользовательского мерзавца. Почему ssh должен позволить мне входить в систему как пользовательский мерзавец? У пользователя мерзавца нет пароля. ssh ключ, который я создал, для пользовательского эксперта. Как это должно работать?
Сделайте я должен добавить некоторые параметрические усилители к sshd_config
?
Похоже на пропавших без вести пары шагов от руководства. После установки ssh ключей это говорит:
Затем мы выполним команду, которая опрыснет некоторое волшебство в корневой каталог пользователя мерзавца и поместит Ваш общедоступный ключ SSH в список авторизованных ключей.
sudo -H -u git gitosis-init < /tmp/id_rsa.pub
и...
В придачу давайте удостоверимся, что рычаг постобновления установлен исполняемый файл. Я видел его, где иногда это не становится установленным (проблема с более старым setuptools):
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
затем Вы хотите сделать шаг, из-за которого Вы испытывали затруднения:
git clone git@YOUR_SERVER_HOSTNAME:gitosis-admin.git
cd gitosis-admin
На шаге 5 Вы не должны добавлять ключ к ~/.ssh/authorized_keys файл сами... gitosis-init делает это для Вас.
И на Вашей стороне клиента, в ~/.ssh/config регистрируют настройки, должен быть:
Host myserver.com.ua
User git
Port 22
IdentityFile ~/.ssh/id_dsa
так как Вы хотите, чтобы вход в систему пароля меньше произошел для пользователя мерзавца на сервере.
Как уведомление для кого-либо, кто находит этот вопрос в будущем, я хотел бы указать, что gitosis был объявлен, как удерживается от использования большинством сообщества мерзавца и, кажется, отказывается его автором.
Gitolite стал своим преемником и единогласно согласован для начальника каждым способом, самое главное будучи простотой использования, поиском и устранением неисправностей и отладкой.