Git Server einrichten

Aus cmoser Wiki
Zur Navigation springen Zur Suche springen

Versionskontrollsysteme wie Git sind in der modernen Softwareentwicklung für die "Best Practices" nicht mehr wegzudenken. Sie erlauben es, Änderungen der Software auf Quelltextebene mitzuverfolgen. Git erlaubt zudem frühere Versionen der Software wieder herzustellen und mit Zweigen (branches) unterschiedliche Versionen von Dateien und Verzeichnissen zu erstellen.

Viele Software Projekte setzen auf Services wie Github, GitLab oder Bitbucket um ihre Software zu versionieren und diese zu verteilen. Wir werden uns aber in diesem Tutorial unseren eigenen Git-Server unter Ubuntu 22.04 installieren, da man nicht jedes Projekt im Internet finden soll. Das gilt vor allem dann, wenn man seine eigenen Konfigurationsdateien mit Git versioniert.

Installation von Git

Zuerst sollte man überprüfen, ob Git bereits installiert ist.

git --version

Wird dieser Befehl mit einem Fehler quittiert, ist Git nicht installiert und muss noch dem System hinzugefügt werden.

sudo apt update && sudo apt install -y git

Ein erneutes git --version gibt dann die installierte Git-Version aus. Für den Git-Server haben wir somit die benötigte Software installiert.

Git-Nutzer anlegen

Als Nächstes müssen wir noch einen Git-Nutzer, unter dem der Server laufen soll, anlegen. Dieser Nutzer hostet die ganzen Git-Repositorien und macht sie im Netzwerk verfügbar. Über SecureShell werden die Repositorien den angelegt und verwaltet. Die Repositorien befinden sich im Verzeichnis /srv/git/repositories. Ein .ssh Verzeichnis, in dem sich in der Datei authorized_keys befindet, welche die zur Anmeldung erlaubten öffentlichen Schlüssel der Nutzer enthält, muss, mit den entsprechenden Berechtigungen, auch noch angelegt werden.

sudo useradd --comment "Git Nutzer" --home-dir /srv/git --create-home --password PASSWORD --uid 10000 --user-group
sudo -u git mkdir /srv/git/{repositories,.ssh} && sudo -u git chmod 0700 /srv/git/.ssh
sudo -u git touch /srv/git/.ssh/authorized_keys && chmod 0600 /srv/git/.ssh/authorized_keys

Jetzt müssen noch die Schlüssel der Benutzer in die Datei eingefügt werden. Wenn die Nutzer noch kein ssh-Schlüsselpaar haben, lässt sich selbiges mit dem Befehl ssh-keygen anlegen. Mit cat ~/.ssh/id_rsa.pub lässt sich der öffentliche Schlüssel anzeigen.

Mit ssh-copy-id lassen sich die Schlüssel dann am Server eintragen.

ssh-copy-id -i ~/.ssh/id_rsa.pub git@git-server