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


Ich möchte einen Git Server einrichten. Ich habe mehrere Anleitungen gefunden, sehr detailliert.

Einige beschreiben die Installation für einen Git-Server, der über Ssh zugänglich ist, während andere über HTTP zugänglich sind. (Andere empfehlen sogar Werkzeuge wie Gitolit).

Gibt es Vor- oder Nachteile, die über SSH oder HTTP entscheiden? Es scheint, dass per HTTP die Dateiübertragung wesentlich langsamer ist, aber ich frage mich, ob es noch andere Dinge zu beachten gibt.

Was ist der gängigste Weg, um einen Git-Server einzurichten, falls vorhanden?


20
2017-09-19 22:10


Ursprung




Antworten:


Während Sie nach dem am häufigsten verwendeten Weg fragen, denke ich, dass es besser ist, sich Ihre Situation anzusehen und sich daran zu erinnern ein Protokoll schließt ein anderes nicht aus - Fügen Sie später mehr Zugriffsprotokoll hinzu, wenn Sie sie benötigen.

  • Die meisten effizient und schnell ist der native Git-Daemon. Aber wenig Funktionen angeboten: keine Verschlüsselung, keine Authentifizierung. Ideal für die Öffentlichkeit schreibgeschützte Spiegel Ihrer Repositories. Wenn Sie Leistung benötigen, sollten Sie auch eine aktuelle Version und nicht die mit dem Betriebssystem ausgelieferte Version installieren.

  • Die meisten kompatibel Weg ist HTTP. Weniger effizient als natives Git, aber auch kein großer Unterschied. Das wichtigste Pro von HTTP ist Firewall-Penetration und Proxy-Unterstützung. Es erscheint als normaler anderer HTTP-Verkehr für die meisten Gateways / Firewalls.

  • Mehr sichern ist HTTPS, aber zwangsläufig auch weniger effizient. Erfordert eine gewisse Konfiguration. Sie benötigen außerdem ein vertrauenswürdiges TLS-Zertifikat.

  • Ähnliche Sicherheit, aber mehr verbreitet Weg ist es, SSH zu verwenden. Es ist der Standard wenn kein Protokoll in der Befehlszeile angegeben ist. Mit SSH wird eine starke Verschlüsselung und Passwort- und Schlüsselauthentifizierung bereitgestellt. Auch wenn es unkonventionell ist, ist es möglich, auf diese Weise anonymen Zugriff zu erlauben.

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

  • Private Repositories & kleine Benutzergruppe: SSH

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

  • eine der oben genannten, aber mit einer großen Menge von Push-privilegierten Benutzern: Sie verstehen wahrscheinlich nicht die Philosophie von Git.

Einige öffentliche oder Unternehmensnetzwerke blockieren möglicherweise den Git- und SSH-Verkehr. Wenn Sie wirklich auf Ihre Repositories zugreifen müssen irgendwo, erwägen Sie, sowohl HTTPS als auch SSH zu verwenden.


22
2017-09-19 22:49



Sie können kostenlose TLS-Zertifikate für HTTPS von startssl.com erhalten. Von allen wichtigen Betriebssystemen / Browsern vertraut. - WhyNotHugo
Oder letsencrypt.org - Tereza Tomcova


Sie können HTTPS für 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 eine bessere Authentifizierungsverwaltung bietet.


1
2017-09-19 22:16



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