Przede wszystkim musisz sprawdzić konfigurację openssh na serwerze Ubuntu: zobacz to HowTo .
Następnie możesz postępować zgodnie z tym artykułem , który głównie zaleca:
$ 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
przejdź do /etc/ssh/ssh_config
pliku i dodaj git do listy dozwolonych użytkowników, którzy mogą się zalogować.
skopiuj id_rsa.pub
gdzieś swój plik na serwer (w naszym przykładzie używamy /tmp
), a następnie uruchom następującą komendę:
$ 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
Na lokalnej maszynie przetestuj to w ten sposób:
git clone git@YOUR_SERVER:gitosis-admin.git
Skonfiguruj gitosis dla nowego projektu. Użyj swojego ulubionego edytora, aby utworzyć nowy blok pod gitosis. To powinno wyglądać tak:
[group myrailsapp]
members = myNameAsInTheRsa.pub
writable = myNewApp
Kilka rzeczy, na które należy uważać w powyższym bloku.
Po pierwsze, upewnij się, że twoje nazwisko pasuje do tego, co jest w kluczu publicznym (to znaczy otwórz plik id_rsa.pub i zobacz, co mówi nazwa.
Po drugie, upewnij się, że poprawnie zapisałeś!
Po zakończeniu zatwierdzaj zmiany i pchaj je na serwer.
$ git commit -a -m "created a new repository!"
$ git push
eagain.net
, możesz użyć Github.Najlepszym sposobem na to byłoby uruchomienie serwera ssh i ograniczenie użytkowników do używania
git-shell
ich powłoki logowania. Możesz poprawnie zainstalować serwer ssh, uruchamiając jedno z poniższych poleceń, jeśli jeszcze nie zostało zainstalowane.lub
Następnie dodać
/usr/bin/git-shell
do/etc/shells
wykonującNastępnie użyj
git-shell
zamiast zamiastbash
jako powłoki użytkownika. Ograniczy to użytkownika do możliwości wykonywaniagit
operacji tylko podczas logowania się na serwerze, zamiast dostarczania użytkownikowi pełnej informacji.źródło