2009-02-10 11 views
9

Ho bisogno di un'applicazione per essere in grado di recuperare da un repository git ma non di spingerlo, quindi, questa è la parte di sola lettura. Questo potrebbe facilmente essere fatto con demone git.Posso eseguire un server git protetto da password e di sola lettura?

Per di più, ho bisogno di accedere a tale repository per essere protetto da password, anche per leggerlo. Quindi, prima che possa accadere qualsiasi tentativo di recupero, l'applicazione dovrà autenticarsi.

È fattibile? con demone git? qualcos'altro? http + auth forse?

+0

Cosa intendete recuperare ma non tirare? pull è solo un recupero + unione locale. pull è un'operazione di sola lettura, a meno che mi manchi qualcosa. –

+0

oops, significa spinta, non tirare. – kch

risposta

2

Il modo più semplice è impostare l'autenticazione HTTP su gitweb. Vedi there.

6

L'autenticazione HTTP non protegge il pacchetto trasmesso sul cavo, quindi se si è preoccupati di intercettazioni l'autenticazione HTTP non sarà sufficiente. Inoltre, git è molto più efficiente usando il protocollo git rispetto al protocollo HTTP. git-daemon, tuttavia, non esegue l'autenticazione per te.

Probabilmente la soluzione migliore è utilizzare gitosis che consente di proteggere il repository utilizzando ssh - crittografia forte autenticazione e riservatezza sul filo - e controllare l'accesso al repository (ad es. Alcuni utenti leggono -write e alcuni utenti di sola lettura). Questo userà l'efficiente protocollo git sulla tua connessione ssh.

Se si è disposti a esternalizzare questo, github è forse l'approccio migliore. Hanno piani a diversi prezzi per soddisfare molte esigenze.

+0

Ho un account github gratuito che utilizzo per i miei progetti aperti. Hanno roba per gestire l'autenticazione/l'autorizzazione oltre a ssh negli account a pagamento? – kch

+0

Hm, a seguito di un ulteriore esame sembra che non supportino l'accesso di sola lettura autenticato; la loro lista dei piani è su http: // github.com/plans e puoi contattare [email protected] con domande. –

0

È possibile scaricare tramite SSH, che è sia il canale autenticato che crittografato. Non so se gitosis ti aiuterebbe a gestire gli accessi SSH invece di configurare account shell con git-shell come shell.

0

Per creare un repository "di sola lettura" autenticato, fornire l'accesso SSH al repository per tutte le parti applicabili, ma solo consentire le richieste push (accesso in scrittura) a un sottoinsieme delle parti utilizzando un hook di aggiornamento come exampled here.

0

Utilizzare gitolite. Questo è semplicemente il migliore: facile da configurare (se già conosci la gestione delle chiavi SSH), controllo completo sull'accesso degli utenti e sulla sicurezza del trasporto (SSH).

0

Mi piace avere una combinazione di git + gitolite + gitweb

  • dove gitweb dà un webfrontend molto snello e veloce

  • e gitolite sta facendo tutti i compiti di autorizzazione , quindi puoi dare il permesso di leggere o scrivere su un livello utente (ssh) (anche la configurazione di gitolite è gestita come un semplice repository git , che significa, un le modifiche di configurazione/autorizzazione sono rintracciabili)