17 Stimmen

Git Server Frustration (Gitosis, Gitolite, etc)

Bitte entschuldigen Sie die frustrierenden Untertöne, da ich mehrfach vergeblich versucht habe, dies korrekt einzurichten (möglicherweise und höchstwahrscheinlich aufgrund meiner Unwissenheit, aber wahrscheinlich auch aufgrund des Fehlens einer gründlichen und präzisen Dokumentation).

Ich versuche, einen Git-Server einzurichten, damit ich Code für ein kleines Team von Entwicklern freigeben kann. Jeder Entwickler kann von mehreren Client-PCs aus eine Verbindung herstellen. Da ich früher bei MS gearbeitet habe, bin ich in Bezug auf die Entwicklung ein wenig verwöhnt. toolset aber es wäre großartig, wenn ich etwas Ähnliches wie TFS bekommen könnte.

Beim Versuch, entweder gitosis einzurichten (soweit ich weiß, ist dies für die git-Gemeinschaft veraltet per https://serverfault.com/questions/225495/ubuntu-server-gitosis-user-naming-convention ) oder Gitolith, scheint es so, als ob ich, sobald ich es aufstelle, extrem vorsichtig sein muss, weil es scheint, dass alles auf Zahnstochern balanciert.

Bei meinem letzten Versuch, einen Git-Server einzurichten, habe ich meinen öffentlichen Schlüssel (benny.pub) von meinem Laptop auf den Server übertragen, alles mit diesem öffentlichen Schlüssel eingerichtet und die Konfiguration heruntergeladen, um ein Projektarchiv und Berechtigungen einzurichten. Dann wurde mir klar, dass ich auf einem anderen PC entwickeln wollte, also erstellte ich einen neuen Schlüssel (benny@desktop.pub) und benannte benny.pub in benny@laptop.pub um, was natürlich alles durcheinanderbrachte. Hier weiß ich, dass ich dumm war, den Namen zu ändern.

Meine Frage nach einer langwierigen Beschreibung ist dies: wie kann ich einen stabilen selbst gehosteten Git-Server mit der Fähigkeit, mehrere Entwickler anmelden von mehreren Rechnern unter Beibehaltung der Sicherheit, etc. haben? Es muss eine bewährte Technik geben (Gitolite beschreibt vielleicht 4-5 verschiedene Möglichkeiten... auch frustrierend), um dies zu tun, da ich sicher bin, dass ich nicht der Einzige bin, der versucht, genau das Gleiche zu tun. Vielleicht ist Git nicht das Richtige für mein Team?

Jede Hilfe ist sehr willkommen!

15voto

Alexander Groß Punkte 9454

Meiner Erfahrung nach benötigen Sie lediglich einen SSH-Server mit einer einzeln git-Konto/Login, mit dem Sie sich über einen Ihrer öffentlichen Schlüssel verbinden können. Installieren Sie gitolite per SSH (kopiert gitloite von Ihrem Client auf den Server und nimmt die Grundeinstellungen vor) und lassen Sie sich von Ihren Entwicklern deren öffentliche Schlüssel zusenden. Fügen Sie diese Schlüssel dem Repository gitolite-admin in Ihrem ~ und drücken.

Warum braucht ein Entwickler überhaupt mehr als ein Schlüsselpaar, selbst wenn mehrere Rechner verwendet werden? Solche Fälle haben weder Einfluss darauf, wie SSH die Authentifizierung handhabt, noch darauf, wie gitolite die Autorisierung handhabt: Es handelt sich immer noch um SSH-Schlüssel.

  • Wenn ein Entwickler mehrere Schlüsselpaare verwenden muss (eines für Git, ein anderes für einen anderen Server), lassen Sie ihn die Komplexität handhaben und raten Sie ihm, einen Eintrag in ~/.ssh/config für jedes von ihnen verwendete Schlüsselpaar/Serverkombination.

  • Wenn ein Entwickler auf jedem verwendeten Rechner ein anderes Schlüsselpaar hat, können gitolite-Gruppen mehrere öffentliche Schlüssel kombinieren:

    @agross = agross-1 agross-2

4voto

Rom1 Punkte 3107

Dazu ein paar Hinweise:

Der Abschnitt über Git auf dem Server auf Scott Chacons Profi-Git Buch

Gitorious ist FOSS

2voto

adl Punkte 14904

Ich verwalte eine Gitosis-Konfiguration bei der Arbeit, und wenn ein Entwickler mehrere ssh-Schlüssel hat, muss ich nur alle diese Schlüssel in dieselbe keydir/user.pub Datei.

Verketten Sie also alle Ihre Schlüssel in keydir/benny.pub und schon sollte alles fertig sein.

2voto

Jakub Narębski Punkte 286531

Es gibt einige Open-Source-Git-Hosting-Lösungen mit einer webbasierten Benutzeroberfläche zum Erstellen von Repositorys und Hinzufügen von Benutzern (wie GitHub:FI )... obwohl ich nicht weiß, wie man den Zugang einschränken kann:

HTH

1voto

Ashwini Dhekane Punkte 2242

Ich verwende Debian und jeder Entwickler hat ein Konto auf dem Server. Ich verwende ssh mit privatem Schlüssel. Schließlich muss ein Entwickler eine URL wie ssh://username@example.com/git-repo/repo.git zum Auschecken oder auf jeden Fall zur Interaktion mit Git auf dem Repo verwenden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X