Was sind die Vor- und Nachteile von SSH und HTTP für einen Git-Server?

23

Ich möchte einen Git-Server einrichten. Ich habe einige Anleitungen gefunden, die sehr detailliert sind.

Einige beschreiben die Installation für einen Git-Server, auf den über Ssh zugegriffen werden kann, während andere über HTTP zugreifen können. (Andere raten sogar zu Werkzeugen wie Gitolite).

Gibt es Vor- oder Nachteile bei der Auswahl von SSH oder HTTP? Es scheint, dass die Dateiübertragung per HTTP erheblich langsamer ist, aber ich frage mich, ob noch andere Dinge zu beachten sind.

Was ist die gebräuchlichste Methode, um einen Git-Server einzurichten?

Stephane Rolland
quelle

Antworten:

22

Während Sie nach dem gängigsten Weg fragen, ist es meiner Meinung nach besser, sich Ihre Situation anzuschauen und sich daran zu erinnern, dass ein Protokoll ein anderes nicht ausschließt - fügen Sie später ein weiteres Zugriffsprotokoll hinzu, wenn Sie es benötigen.

  • Am effizientesten und schnellsten ist es, den nativen Git-Daemon zu verwenden. Es werden jedoch nur wenige Funktionen angeboten: keine Verschlüsselung, keine Authentifizierung. Ideal für öffentliche Nur-Lese-Spiegel Ihrer Repositorys. Wenn Sie Leistung benötigen, sollten Sie auch eine neuere Version anstelle der mit Ihrem Betriebssystem gelieferten Version installieren.

  • Am kompatibelsten ist HTTP. Weniger effizient als natives Git, aber auch kein so großer Unterschied. Das wichtigste Merkmal von HTTP ist die Firewall-Durchdringung und die Proxy-Unterstützung. Es wird für die meisten Gateways / Firewalls als regulärer anderer HTTP-Datenverkehr angezeigt.

  • Mehr sichere HTTPS, aber zwangsläufig zu weniger effizient. Benötigt ziemlich viel Konfiguration. Sie benötigen außerdem ein vertrauenswürdiges TLS-Zertifikat.

  • Ähnliches gilt für die Sicherheit, häufig wird jedoch SSH verwendet. Dies ist die Standardeinstellung, wenn in der Befehlszeile kein Protokoll angegeben ist. Unterstützt von SSH bietet es eine starke Verschlüsselung sowie Kennwort- und Schlüsselauthentifizierung. Es ist zwar unkonventionell, aber auch möglich, auf diese Weise anonymen Zugriff zuzulassen.

Mein Rat wäre abhängig vom Anwendungsfall Ihrer Repositories:

  • Private Repositories & kleine Benutzergruppe: SSH

  • Öffentliche Repositorys, beliebig viele Klone, aber nur eine kleine Gruppe von Push-privilegierten Benutzern: HTTP und Git (nur Abruf) + SSH (+ Push-Zugriff)

  • eine der oben genannten Möglichkeiten, aber mit einer großen Anzahl von Benutzern mit Push-Rechten: Sie verstehen die Philosophie von Git wahrscheinlich nicht.

Einige öffentliche oder Unternehmensnetzwerke blockieren möglicherweise den Git- und SSH-Verkehr. Wenn Sie wirklich von überall auf Ihre Repositorys zugreifen müssen, sollten Sie sowohl HTTPS als auch SSH verwenden.

gertvdijk
quelle
Sie können kostenlose TLS-Zertifikate für HTTPS von startssl.com erhalten. Vertrauenswürdig für alle gängigen Betriebssysteme / Browser.
WhyNotHugo
2
Oder letsencrypt.org
Tereza Tomcova
2

Sie können HTTPS für den schreibgeschützten Zugriff verwenden, wenn Ihre Repositorys öffentlich sind, da sie auf der Clientseite einfach zu verwenden sind. Wenn nicht, sollten Sie nur SSH verwenden. In jedem Fall sollten Sie SSH für den Schreibzugriff verwenden, da es ein besseres Authentifizierungsmanagement bietet.

Christopher Perrin
quelle
Oh, also ist es möglich, die beiden zu mischen? SSH für Schreib- und Lesezugriff und Https für einfachen Lesezugriff?
Stephane Rolland
Ja ist es. Es sollte kein großes Problem sein.
Christopher Perrin