2011-08-17 10 views
19

Mi chiedevo se qualcuno ha un modo buono, pulito e sicuro per gestire l'accesso al repository di github Organization sui propri server?gestione di chiavi pubbliche ssh su repository di organizzazioni github

Sembra che sia possibile allegare solo chiavi di pub al proprio account personale e non sia possibile limitare l'accesso esclusivamente a un'organizzazione.

Abbiamo un server beta in cui inseriamo più progetti in modo da distribuire le chiavi, perché devono essere unici, non ideali. Sarebbe bello dare accesso globale all'organizzazione, ma non voglio dare al server, sul quale abbiamo freelance, pieno accesso al mio account personale (il server ha accesso all'organizzazione, che è buono, ma anche ai miei progetti personali e ogni altra organizzazione a cui appartengo, che è male).

I due soluzioni alternative che vedo sono di impostare un utente fittizio github per passare attraverso, che sembra stupido, o per abilitare l'inoltro dell'agente ssh, che sembra un rischio per la sicurezza (non sono il miglior server-admin).

Un amico ha suggerito di configurare il server come telecomando da inviare, ma sembra una soluzione di cerotto.

Mi piacerebbe pensare che c'è un modo più semplice per impostare l'accesso per il repository di un'organizzazione come penserei sarebbe un bisogno fondamentale per tutti.

Sono tutti orecchie se qualcuno vorrebbe condividere qualcosa che ha/sta lavorando per la loro organizzazione github.

Probabilmente mi limiterò a mordere il proiettile e creare un utente fittizio di github e chiamarlo un giorno, ho bisogno di portare a termine il lavoro.

+0

Perché pensi che l'inoltro di agenti sia un rischio per la sicurezza? Non capisci come funziona? – Tekkub

risposta

6

un'alternativa alla risposta da sergey_mo (e come una risposta diretta domanda finale di Michał Szajbe) è quello di creare più chiavi SSH come documentato da chalien su githib:

https://gist.github.com/jexchan/2351996

+1

Vecchia risposta, lo so ... Ma ecco [un link di lavoro] (https://gist.github.com/jexchan/2351996) (suppongo che sia il documento originale/le informazioni collegate alla risposta sopra). – mhulse

+0

Ho appena aggiornato il link nel post. –

2

Non capisco perché l'aggiunta di un account fittizio sia così dannosa per l'implementazione automatica, purché si esegua il proprio server beta come area di gestione prima di passare a GitHub. Cioè, se vuoi che il betacode sia privato.

Il solito modo GitHub sarebbe aggiungere tutti i collaboratori e avere semplicemente un progetto stabile e una forcella beta. Avresti automaticamente caricato la versione beta corrente sul tuo server beta per il test (nessuna chiave ssh era necessaria) e se i tuoi test riuscissero, estrai le fusioni dal fork beta al progetto stabile.

+0

Immagino che non sia la cosa peggiore del mondo, speravo solo di essere in grado di gestire l'accesso all'organizzazione con un account senza dover destreggiarmi con i log-in come facevo un tempo. Ha un po 'di senso anche se le organizzazioni non sono utenti. Grazie per l'input. – digitaldreamer

+1

Il problema è che se si usano account fittizi in qualsiasi DVCS, non si è in grado di incolpare o annotare/chi ha fatto cosa, il che risulta molto utile quando uno degli account viene violato e non è necessario inviare nuove chiavi a tutti . – Lars

0

È possibile aggirare il problema facendo in modo che le applicazioni vengano eseguite da utenti diversi (un utente per applicazione). Intendo gli utenti del server, non gli utenti github. È comunque una buona pratica sui server multi-app.

Ogni utente ha quindi la propria coppia di chiavi ssh, quindi sono disponibili molte chiavi di distribuzione univoche (una per repository github).

Io uso questo approccio quando possibile. Tuttavia, ci sono situazioni in cui più di un'app viene eseguita da un singolo utente e probabilmente non può essere eseguita con le chiavi di distribuzione di github. Sto anche cercando una buona soluzione per questi casi.

1

Piccola nota su CI:
Per esempio, se si utilizza Jenkins e avete bisogno di accedere a più di 1 progetto è necessario:
1. Aggiungere la chiave pubblica a una github account utente
2. add questo utente come proprietario (per accedere a tutti i progetti) o come collaboratore in ogni progetto.

Molte chiavi pubbliche per un utente del sistema non funzionerà perché GitHub troverà prima abbinati distribuire chiave e invierà di nuovo errore come "ERRORE: Il permesso di utente/repo2 negato per l'utente/repo1"

http://help.github.com/ssh-issues/

Problemi correlati