Quali sono i pro e i contro di SSH e HTTP per un server git?


24

Voglio installare un server git. Ho trovato diversi tutorial, ben dettagliati.

Alcuni descrivono l'installazione per un server git accessibile tramite Ssh, mentre altri, accessibile tramite HTTP. (Altri addirittura consigliano strumenti come la gitolite).

Ci sono pro o contro che scelgono su SSH o HTTP? Sembra che tramite HTTP il trasferimento dei file sia notevolmente più lento, ma mi chiedo se ci sono altre cose da tenere a mente.

Qual è il modo più comune di configurare un server Git, se presente?

Risposte:


23

Mentre stai chiedendo qual è il modo più comune, penso che sia meglio esaminare la tua situazione e ricordare che un protocollo non ne esclude un altro : aggiungi più protocollo di accesso in seguito se ne hai bisogno.

  • Il modo più efficiente e veloce è usare il demone Git nativo. Tuttavia, poche funzionalità offerte: nessuna crittografia, nessuna autenticazione. Ideale per mirror pubblici di sola lettura dei tuoi repository. Se hai bisogno di prestazioni, considera anche l'installazione di una versione recente anziché della versione fornita con il tuo sistema operativo.

  • Il modo più compatibile è HTTP. Meno efficiente di Git nativo, ma neanche molta differenza. Il pro più importante di HTTP è la penetrazione del firewall e il supporto proxy. Sembra un normale altro traffico HTTP per la maggior parte dei gateway / firewall.

  • Più sicuro è HTTPS, ma inevitabilmente anche meno efficiente. Richiede una certa configurazione. Avrai anche bisogno di un certificato TLS attendibile.

  • Sicurezza simile, ma un modo più comune è usare SSH. È l' impostazione predefinita se non viene specificato alcun protocollo sulla riga di comando. Alimentato da SSH, fornisce una crittografia avanzata e l'autenticazione di password e chiavi. Sebbene non convenzionale, è possibile consentire anche l'accesso anonimo in questo modo.

Il mio consiglio dipenderà dal caso d'uso dei tuoi repository:

  • repository privati ​​e piccoli gruppi di utenti: SSH

  • repository pubblici, qualsiasi quantità di cloni, ma un piccolo gruppo di utenti con privilegi push: HTTP e Git (solo fetch) + SSH (+ push-access)

  • quanto sopra, ma con un gran numero di utenti con privilegi push: probabilmente non capisci la filosofia di Git.

Alcune reti pubbliche o aziendali potrebbero bloccare il traffico Git e SSH. Se hai davvero bisogno di accedere ai tuoi repository da qualsiasi luogo , considera l'utilizzo sia di HTTPS che di SSH.


Puoi ottenere certificati TLS gratuiti per HTTPS da openssl.com. Scelto da tutti i principali sistemi operativi / browser.
WhyNotHugo,


2

È possibile utilizzare HTTPS per l'accesso in sola lettura, se i repository sono pubblici in quanto è facile da usare sul lato client. Altrimenti dovresti usare solo SSH. In ogni caso dovresti usare SSH per l'accesso in scrittura poiché ha una migliore gestione dell'autenticazione.


oh, quindi è possibile mescolare i due? SSH per l'accesso in scrittura e lettura e Https per un facile accesso in sola lettura?
Stephane Rolland,

Sì. Non dovrebbe essere un grosso problema.
Christopher Perrin,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.