Git unter Linux

Git kann in allen erntszunehmenden Linux-Distributionen über die Paketverwaltung installiert werden. Auf dpkg-basierten Distributionen erfolgt dies in der Regel mittels

sudo apt-get install git

oder durch einen Klick auf einen geeigneten apturl-Link. Für andere Distributionen sei auf die entsprechende Dokumentation oder den Linux-Support verwiesen. Wir empfehlen dringend, die Version aus der Paketverwaltung zu verwenden! Selbst eine uralte Version aus der Paketverwaltung bereitet in der Regel weniger Probleme als eine lokal installierte.

Sollte noch kein SSH-Key vorhanden sein, lohnt sich die Erstellung nicht nur wegen GitLab. SSH-Keys ermöglichen einen bequemen Login auf entfernten Rechnern ohne Passworteingabe, und sind darüber hinaus noch erheblich sicherer. Ein Schlüssel lässt sich auf der Konsole mittels

ssh-keygen -f ~/.ssh/id_rsa

erstellen.

Die optionale Passphrase schützt den Schlüssel etwas gegen Missbrauch, falls die Datei in falsche Hände gelangen sollte. Die meisten grafischen Oberflächen integrieren einen SSH-Agent, so dass Sie die Passphrase maximal einmal nach dem Login eingeben müssen. Insofern ist eine Passphrase also empfehlenswert. Sollte der SSH-Agent nicht funktionieren, können Sie die Passphrase mit

ssh-keygen -f ~/.ssh/id_rsa -p

sowohl ändern als auch komplett entfernen.

Um den so erstellten Schlüssel für GitLab einzurichten, öffnen Sie die Datei ~/.ssh/id_rsa.pub, beispielsweise mit gedit:

gedit ~/.ssh/id_rsa.pub

Der Inhalt sollte in etwa so aussehen:

ssh-rsa AAAAB3NzaC1………………YjUv8Tg/r matthias@hydra

Kopieren Sie Ihren Key in GitLab unter Profile Settings → SSH Keys → Add SSH Key in das Feld "Key". "Title" wird automatisch eingetragen; bei Bedarf sollten Sie den Titel aber so ändern, dass Sie den Rechner, auf dem der Key erzeugt wurde, daran identifizieren können. Bitte achten Sie darauf, dass Sie auch wirklich den Public Key zu kopieren. Auf keinen Fall sollte der Key mit

-----BEGIN RSA PRIVATE KEY-----

beginnen – das ist ~/.ssh/id_rsa, die falsche Datei und der Private Key! Dieser sollte auch wirklich privat gehalten werden, und für optimale Sicherheit eigentlich nie kopiert werden, auch nicht auf andere Rechner. Erstellen Sie stattdessen einfach einen neuen Schlüssel auf dem anderen Rechner, und tragen diesen zusätzlich bei GitLab ein.

Sollte der Key, oder der Rechner / Laptop auf dem er sich befindet, einmal abhanden kommen, können Sie so den betroffenen Key schnell wieder entfernen. Das bringt den Key, und insbesondere den Rechner, nicht zurück, aber es kann unberechtigten Schreibzugriff auf Ihr GitLab-Repository (und eventuell Login auf anderen Rechner) verhindern. Lesezugriffe auf das Repository werden dann zwar ebenfalls abgelehnt; da beim Klonen aber eine vollständige Kopie des Repositories erstellt wird, befinden sich in der Regel sowieso bereits alle Daten aus dem Repository auf dem Rechner. Sicherheit schaffen hier nur Werkzeuge zur Festplattenverschlüsselung.

Mit der Gnome-Anwendung seahorse (bzw. "Passwörter und Verschlüsselung") lässt sich ein SSH-Key auch bequem in der grafischen Oberläche erzeugen (Datei → Neu → SSH-Schlüssel), allerdings gibt es leider keine Möglichkeit, den öffentlichen Schlüssel in der GUI anzeigen zu lassen. Unabhängig davon, wie der Schlüssel erstellt wurde, können Sie ihn aber mit seahorse für entfernte Rechner einrichten (Rechtsklick → SSH-Schlüssel einrichten). Diese Funktion funktioniert aber natürlich nur, wenn Sie sich auf diesem Rechner bereits mit Benutzername und Passwort einloggen können, also nicht für GitLab.

Noch eine kleine Warnung zum Schluss: Es ist empfehlenswert, pro Rechner und Benutzer-Account jeweils nur einen einzelnen Schlüssel zu benutzen und diesen unter ~/.ssh/id_rsa abzulegen. Mehrere Schlüssel in dem selben Account werden unterstützt, sind aber schwer zu konfigurieren und bieten keine zusätzliche Sicherheit.

Grafische Werkzeuge

Das Gnome-Werkzeug gitg bietet eine grafische Oberfläche für alle wichtigen Git-Operationen. Sowohl gitg als auch das weniger umfangreiche gitk können die Branch-Struktur eines Repositories anzeigen (analog zu der "Network"-Funktion in GitLab), und sind in dieser Anwendung auch für Kommandozeilen-Benutzer interessant.

Mit EGit gibt es zudem eine Integration in die IDE Eclipse. Damit der Login über SSH-Key funktioniert, muss Eclipse mit

GIT_SSH=/usr/bin/ssh eclipse

gestartet werden. Eclipse cachet diesen Wert irgendwo, so dass ein einmaliger Start mit GIT_SSH=/usr/bin/ssh meist ausreicht. Wenn's dann doch mal nicht geht, kann man den Wert leider nicht ändern ohne Eclipse zu schließen; es ist also empfehlenswert, Eclipse möglichst immer so zu starten.

Sollte ein Dialog nach Benutzername und Passwort fragen, stimmt die Konfiguration nicht – GitLab nimmt keine Passwörter an, auch nicht wenn's "das richtige" (das universitäre Email-Passwort) ist! Falls bei jedem Zugriff auf GitLab (push, pull) ein Dialog nach der Passphrase für den SSH-Key fragt (kein Benutzername), sollten Sie die Einrichtung eines SSH-Agents erwägen.

Git unter Mac OS X

Unter Mac OS X ist Git als Teil von XCode 4.0+ verfügbar. Da es ein Mac ist, ist die Installation intuitiv, also wird für diesen Schritt keine Beratung oder sonstige Hilfe angeboten...

Auch unter Mac OS X kann ein SSH-Key einfach mit

ssh-keygen -f ~/.ssh/id_rsa

erstellt werden. Die optionale Passphrase schützt den Schlüssel etwas gegen Missbrauch, falls die Datei in falsche Hände gelangen sollte. Die Passphrase lässt sich mittels

ssh-add -K

bequem in der systemweiten Keychain speichern.

Um den so erstellten Schlüssel für GitLab einzurichten, öffnen Sie die Datei ~/.ssh/id_rsa.pub:

open -e ~/.ssh/id_rsa.pub

Der Inhalt sollte in etwa so aussehen:

ssh-rsa AAAAB3NzaC1………………YjUv8Tg/r matthias@hydra

Kopieren Sie Ihren Key in GitLab unter Profile Settings → SSH Keys → Add SSH Key in das Feld "Key". "Title" wird automatisch eingetragen; bei Bedarf sollten Sie den Titel aber so ändern, dass Sie den Rechner, auf dem der Key erzeugt wurde, daran identifizieren können. Bitte achten Sie darauf, den Public Key zu kopieren. Auf keinen Fall sollte der Key mit

-----BEGIN RSA PRIVATE KEY-----

beginnen – das ist ~/.ssh/id_rsa, die falsche Datei und der Private Key! Dieser sollte auch wirklich privat gehalten werden, und für optimale Sicherheit eigentlich nie kopiert werden, auch nicht auf andere Rechner. Erstellen Sie stattdessen einfach einen neuen Schlüssel auf dem anderen Rechner, und tragen diesen zusätzlich bei GitLab ein.

Sollte der Key, oder der Rechner / Laptop auf dem er sich befindet, einmal abhanden kommen, können Sie so den betroffenen Key schnell wieder entfernen. Das bringt den Key, und insbesondere den Rechner, nicht zurück, aber es kann unberechtigten Schreibzugriff auf Ihr GitLab-Repository (und eventuell Logins auf anderen Rechnern) verhindern. Lesezugriffe auf das Repository werden dann zwar ebenfalls abgelehnt; da beim Klonen aber eine vollständige Kopie des Repositories erstellt wird, befinden sich in der Regel sowieso bereits alle Daten aus dem Repository auf dem Rechner. Abhilfe schaffen hier nur Werkzeuge zur Festplattenverschlüsselung.

Grafische Werkzeuge

Für die IDE Eclipse gibt es mit EGit eine Git-Integration. Damit der Login über SSH-Keys funktioniert, muss Eclipse wie unter Linux mit GIT_SSH=/usr/bin/ssh gestartet werden, also z.B. in einem Terminal mit

GIT_SSH=/usr/bin/ssh Eclipse.app/Contents/MacOS/eclipse