====== Git Server ====== [[https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server|Git-Server Setting, Konfiguration]] ----- Diese Anleitung beschreibt wie man ein Git-Server auf einem Ubuntu (Deabian) Linux System einrichtet und installiert. Alle Kommandos oder Befehle werden im Terminal eingegeben und es wir root Rechte vorausgesetzt. ===== Bestehende IP Adresse abfragen ===== # Netzwerkkarten anzeigen (Ubuntu) ifconfig -a Ausgabe Beispiel Ubuntu lo: flags=73 mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 0 (Local Loopback) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 0 bytes 0 (0.0 B) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 venet0: flags=211 mtu 1500 inet 127.0.0.2 netmask 255.255.255.255 broadcast 0.0.0.0 destination 127.0.0.2 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 0 (UNSPEC) RX packets 3591649 bytes 4930223690 (4.5 GiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1924771 bytes 166284908 (158.5 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 venet0:0: flags=211 mtu 1500 inet 185.245.96.84 netmask 255.255.255.255 broadcast 185.245.96.84 destination 185.245.96.84 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 0 (UNSPEC) # Netzwerkkarten anzeigen (Debian) ip add Ausgabe Beispiel Debian 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0f0: mtu 1500 qdisc mq master vmbr0 state UP group default qlen 1000 link/ether b8:83:03:54:8d:54 brd ff:ff:ff:ff:ff:ff 3: enp2s0f1: mtu 1500 qdisc mq state UP group default qlen 1000 link/ether b8:83:03:54:8d:55 brd ff:ff:ff:ff:ff:ff inet6 fe80::ba83:3ff:fe54:8d55/64 scope link valid_lft forever preferred_lft forever 4: vmbr0: mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether b8:83:03:54:8d:54 brd ff:ff:ff:ff:ff:ff inet 192.168.1.167/24 brd 192.168.1.255 scope global vmbr0 valid_lft forever preferred_lft forever inet6 fe80::ba83:3ff:fe54:8d54/64 scope link valid_lft forever preferred_lft forever ===== Static IP Adresse einrichten ===== Ein statische IP Adresse lässt sich auf verschiedene Weise einrichten. - Festlegen der IP Adresse auf dem DHCP Server mittels MAC Adresse. [[https://www.tutonaut.de/anleitung-geraeten-netzwerk-ueber-die-fritzbox-feste-ip-adresse-zuweisen/|Beispiel]] - Einstellen der Adresse direkt auf der Netzwerkkarte. [[https://linuxize.com/post/how-to-configure-static-ip-address-on-ubuntu-20-04/|Beispiel]] # Einstellen der IP Adresse über die Interface Konfigurationsdatei. # Zu finden unter /etc/network cd /etc/network # Datei editieren, nano ist der texteditor nano interfaces # In diese Date lässt sich nun der Netzwerkkarte eine IP Adresse zuordnen. # Hier ein Beispiel, Ip adresse wird vom DHCP gesetzt auto enp0s3 allow-hotplug enp0s3 iface enp0s3 inet dhcp # Ändern wir nun als statische Adresse ein. auto enp0s3 allow-hotplug enp0s3 iface enp0s3 inet static address 192.168.250.99 netmask 255.255.255.0 network 192.168.1.1 broadcast 192.168.255.255 gateway 192.168.1.1 # Die Netzwerkkarte erhält die IP 192.168.250.99 # Jetzt muss das die Konfiguration durch Neustarten des Netzwerkdienstes eingelesen werden. systemctl restart networking Die gelb hinterlegte Zeile zeigt die eingestellte statische IP Adresse der Netzwerkkarte enp0s3. [[https://www.osradar.com/set-a-static-ip-on-debian-10-buster/|Eine Anleitung für die Netzwerkeinstellungen unter Debian 10.]] ===== Installieren unter Debian ===== [[https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server|Die Einrichtungsanleitung wurde aus der Originalanleitung von git-scm.com entnommen und auf Debian angepasst.]] ==== User 'git' hinzufügen ==== Bevor wir mit der Installation beginnen können **müssen noch die User**, die auf den Git-Server Zugriff haben sollen, **eingerichtet werden**. # User für Git-Server einrichten. Über SSH # Der neue user heisst 'git' ink Passwort adduser git # Die 'git' Identität annehmen, git Userpasswort muss eingegeben werden. su git # In User Verzeichnis wechseln cd # Ausgeben in welchem Ordner man sich befindet. # Sollte /home/git anzeigen. pwd # Ordner für die Autorisierungs-Keys erstellen. # In diesen werden die Public-Keys der User abgespeichert, die Zugriff auf den Git-Server haben sollen. mkdir .ssh # Ordner Zugriffsberechtigungen setzen chmod 700 .ssh # Datei erstellen in der die Keys gespeichert werden. touch .ssh/authorized_keys # Rechte der Datei so setzen, dass nur der Admin (root) diese ändern kann chmod 600 .ssh/authorized_keys Im Ordner .ssh der sich nun unter /home/git befindet, befindet sich die Datei //authorized_keys//. In diese können dann beliebig viele Public-Keys anderer User angefügt werden. Auf diesem Weg können sich auch andere Benutzer am Git-Server anmelden. Folgendes Beispiel ergänzt die Public-Keys der Benutzer john, josie und jessica in der Datei //authorized_keys//. (cat Befehl) cat /tmp/id_rsa.john.pub >> ~/.ssh/authorized_keys cat /tmp/id_rsa.josie.pub >> ~/.ssh/authorized_keys cat /tmp/id_rsa.jessica.pub >> ~/.ssh/authorized_keys ==== Server Zugriff ohne Login ==== Ein Login auch ohne Passwort ist über OpenSSH-Server möglich. Dazu muss lediglich eine Einstellunge in der Datei //sshd_config// vorgenommen werden. # das in der Datei sshd_config ist wichtig. nano /etc/ssh/sshd_config # Folgener Eintrag muss geändert werden. Dieser ist meistens mit '#' auskommentiert. # PasswordAuthentication no # Ändern nach: PasswordAuthentication yes Die Einstellungen werden erst angenommen nachdem Sie den Netzwerkdienst neu gestartet haben. restart ssh # manchmals auch sudo restart ssh Achtung. Dies heisst nun jeder der den Username kennst kann sich nun über ssh einloggen. Benutzen diese Einstellung nur wenn sichergestellt werden kann dass nur gewünschte User diese Zugang nutzen können. Zum Beispiel in einem lokal isolierten Netzwerk. xxx