Jakie są zalety i wady SSH i HTTP dla serwera GIT?

24

Chcę skonfigurować serwer git. Znalazłem kilka poradników, bardzo szczegółowych.

Niektóre opisują instalację serwera git dostępnego przez Ssh, podczas gdy inne dostępne przez HTTP. (Inni nawet zalecają narzędzia takie jak gitolite).

Czy są plusy i minusy wybierając SSH lub HTTP? Wydaje się, że przez HTTP przesyłanie plików jest znacznie wolniejsze, ale zastanawiam się, czy należy pamiętać o innych rzeczach.

Jaki jest najczęstszy sposób konfigurowania serwera git, jeśli taki istnieje?

Stephane Rolland
źródło

Odpowiedzi:

23

Kiedy pytasz o najczęstszy sposób, myślę, że lepiej jest spojrzeć na swoją sytuację i pamiętać, że jeden protokół nie wyklucza innego - dodaj więcej protokołu dostępu później, jeśli będziesz go potrzebować.

  • Najbardziej wydajne i szybkie jest użycie natywnego demona Git. Jednak oferuje niewiele funkcji: brak szyfrowania, brak uwierzytelniania. Idealny do publicznych kopii lustrzanych repozytoriów tylko do odczytu. Jeśli potrzebujesz wydajności, rozważ także zainstalowanie najnowszej wersji zamiast wersji dostarczonej z systemem operacyjnym.

  • Najbardziej kompatybilnym sposobem jest HTTP. Mniej wydajny niż natywny Git, ale też nie ma dużej różnicy. Najważniejszą zaletą HTTP jest penetracja zapory ogniowej i obsługa proxy. Wygląda jak zwykły inny ruch HTTP dla większości bram / zapór ogniowych.

  • Bardziej bezpieczny jest HTTPS, ale nieuchronnie mniej wydajny. Wymaga dość konfiguracji. Będziesz także potrzebował zaufanego certyfikatu TLS.

  • Podobne zabezpieczenia, ale bardziej powszechnym sposobem jest użycie SSH. Jest to ustawienie domyślne, jeśli w wierszu poleceń nie określono protokołu. Obsługiwany przez SSH, zapewnia silne szyfrowanie oraz uwierzytelnianie za pomocą hasła i klucza. Chociaż niekonwencjonalne, możliwe jest również umożliwienie anonimowego dostępu w ten sposób.

Moja rada zależy od przypadku użycia twoich repozytoriów:

  • prywatne repozytoria i mała grupa użytkowników: SSH

  • publiczne repozytoria, dowolna liczba klonów, ale niewielka grupa użytkowników uprzywilejowanych w trybie push: HTTP i Git (tylko pobieranie) + SSH (+ dostęp push)

  • którekolwiek z powyższych, ale z dużą liczbą użytkowników uprzywilejowanych w trybie push: prawdopodobnie nie rozumiesz filozofii Git.

Niektóre sieci publiczne lub korporacyjne mogą blokować ruch Git i SSH. Jeśli naprawdę potrzebujesz dostępu do swoich repozytoriów z dowolnego miejsca , rozważ użycie zarówno HTTPS, jak i SSH.

gertvdijk
źródło
Bezpłatne certyfikaty TLS dla HTTPS można uzyskać na stronie openssl.com. Zaufany przez wszystkie główne systemy operacyjne / przeglądarki.
WhyNotHugo
2
Lub letsencrypt.org
Tereza Tomcova
2

Możesz użyć HTTPS do dostępu tylko do odczytu, jeśli twoje repozytoria są publiczne, ponieważ jest łatwy w użyciu po stronie klienta. Jeśli nie, powinieneś używać tylko SSH. W każdym przypadku należy użyć SSH do dostępu do zapisu, ponieważ ma lepsze zarządzanie uwierzytelnianiem.

Christopher Perrin
źródło
och, więc można mieszać oba? SSH dla dostępu do zapisu i odczytu oraz HTTP dla łatwego dostępu tylko do odczytu?
Stephane Rolland
Tak to jest. To nie powinno stanowić większego problemu.
Christopher Perrin,