Прежде всего, вам нужно проверить настройки openssh на сервере Ubuntu: см. Этот HowTo .
Тогда вы можете следовать этой статье , которая в основном рекомендует:
$ sudo apt-get install python-setuptools
$ mkdir ~/src
$ cd ~/src
$ git clone git://eagain.net/gitosis.git
$ cd gitosis
$ sudo python setup.py install
$ sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group
--disabled-password \
--home /home/git \
git
зайдите в свой /etc/ssh/ssh_config
файл и добавьте git в список разрешенных пользователей, которые могут войти.
скопируйте свой id_rsa.pub
файл куда-нибудь на свой сервер (в нашем примере мы используем /tmp
) и затем запустите эту команду:
$ sudo -H -u git gitosis-init < /tmp/id_rsa.pub
Initialized empty Git repository in ./
$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
Проверьте это с вашей локальной машины:
git clone git@YOUR_SERVER:gitosis-admin.git
Настройте Gitosis для нового проекта. Используйте ваш любимый редактор, чтобы создать новый блок под Gitosis. Это должно выглядеть так:
[group myrailsapp]
members = myNameAsInTheRsa.pub
writable = myNewApp
Несколько вещей, чтобы следить за вышеупомянутым блоком.
Во-первых, убедитесь, что ваше имя соответствует тому, что находится в вашем открытом ключе (то есть откройте ваш файл id_rsa.pub и посмотрите, что написано в имени.
Во-вторых, убедитесь, что вы пишете правильно для записи!
Как только вы закончите, зафиксируйте и отправьте изменения на сервер.
$ git commit -a -m "created a new repository!"
$ git push
eagain.net
, вы можете использовать Github.Ваш лучший способ сделать это - запустить ssh-сервер и ограничить использование пользователями
git-shell
своей оболочки входа в систему. Вы можете правильно установить сервер ssh, выполнив одну из следующих команд, если она еще не установлена.или
Затем добавьте
/usr/bin/git-shell
к/etc/shells
действиюЗатем используйте
git-shell
вместо вместоbash
своей пользовательской оболочки. Это ограничит пользователя только возможностью выполнятьgit
операции при входе на сервер, а не предоставлять пользователю полную информацию.источник