GIT-Repository über LAN

14

Ich versuche, ein GIT-Repository über LAN in Ubuntu OS einzurichten .
Ich bin in der Lage eine GIT - Repository einzurichten, aber nicht sicher , WIE das Repository für andere Benutzer im LAN aussetzen .
Da es einen Server benötigt, habe ich OpenSSH-Server installiert . Aber weiß nicht , WIE es zu konfigurieren.

Bitte zeigen Sie mir, um die Ressource zu korrigieren, aus der gelesen werden soll.
Vielen Dank.


quelle

Antworten:

17

Zunächst müssen Sie Ihr openssh-Setup auf dem Ubuntu-Server überprüfen: Siehe dieses HowTo .

Dann können Sie diesem Artikel folgen , der hauptsächlich empfiehlt:

$ 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

Gehen Sie in Ihre /etc/ssh/ssh_configDatei und fügen Sie git zur Liste der zugelassenen Benutzer hinzu, die sich anmelden können.
Kopieren Sie Ihre id_rsa.pubDatei irgendwo auf Ihren Server (in unserem Beispiel verwenden wir /tmp) und führen Sie dann den folgenden Befehl aus:

 $ 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

Testen Sie es auf Ihrem lokalen Computer folgendermaßen:

 git clone git@YOUR_SERVER:gitosis-admin.git

Konfigurieren Sie gitosis für ein neues Projekt. Verwenden Sie Ihren bevorzugten Editor, um einen neuen Block unter dem Gitosis-Block zu erstellen. Es sollte so aussehen:

[group myrailsapp]
members = myNameAsInTheRsa.pub
writable = myNewApp

Ein paar Dinge, die Sie im obigen Block beachten sollten.
Stellen Sie zunächst sicher, dass Ihr Name mit dem übereinstimmt, was sich in Ihrem öffentlichen Schlüssel befindet (öffnen Sie also Ihre Datei id_rsa.pub und überprüfen Sie, ob der Name
richtig geschrieben ist).

Sobald Sie fertig sind, schreiben Sie die Änderungen fest und übertragen Sie sie auf den Server.

$ git commit -a -m "created a new repository!"
$ git push
VonC
quelle
Hinweis: Wenn Sie Probleme mit der haben eagain.net, können Sie Github verwenden.
Kazark
3

Ihr bester Weg, dies zu tun, wäre, einen SSH-Server zu betreiben und Ihre Benutzer auf die Verwendung git-shellfür ihre Login-Shell zu beschränken. Sie können einen ssh-Server ordnungsgemäß installieren, indem Sie einen der folgenden Befehle ausführen, sofern dieser noch nicht installiert wurde.

sudo apt-get install openssh-server

oder

sudo apt-get install dropbear

Dann füge hinzu /usr/bin/git-shell, /etc/shellsindem du tust

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

Dann benutze die git-shellstatt bashals deine User-Shell. Dies schränkt den Benutzer ein, dass nur gitVorgänge ausgeführt werden können, wenn er sich beim Server anmeldet, anstatt dem Benutzer eine vollständige Übersicht zu geben.

Sybreon
quelle