Repozytorium GIT w sieci LAN

14

Próbuję skonfigurować repozytorium GIT przez sieć LAN w systemie Ubuntu .
Jestem w stanie skonfigurować repozytorium GIT, ale nie jestem pewien, JAK ujawnić repozytorium innym użytkownikom w sieci LAN .
Ponieważ wymaga serwera, zainstalowałem serwer OpenSSH . Ale nie wiem, JAK go skonfigurować.

Wskaż mi poprawienie zasobu do odczytu.
Dzięki.


źródło

Odpowiedzi:

17

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_configpliku i dodaj git do listy dozwolonych użytkowników, którzy mogą się zalogować.
skopiuj id_rsa.pubgdzieś 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
VonC
źródło
Uwaga: jeśli masz problemy z eagain.net, możesz użyć Github.
Kazark
3

Najlepszym sposobem na to byłoby uruchomienie serwera ssh i ograniczenie użytkowników do używania git-shellich powłoki logowania. Możesz poprawnie zainstalować serwer ssh, uruchamiając jedno z poniższych poleceń, jeśli jeszcze nie zostało zainstalowane.

sudo apt-get install openssh-server

lub

sudo apt-get install dropbear

Następnie dodać /usr/bin/git-shelldo /etc/shellswykonując

sudo echo $(which git-shell) >> /etc/shells

Następnie użyj git-shellzamiast zamiast bashjako powłoki użytkownika. Ograniczy to użytkownika do możliwości wykonywania gitoperacji tylko podczas logowania się na serwerze, zamiast dostarczania użytkownikowi pełnej informacji.

sybreon
źródło