2012-05-15 11 views
6

Quindi ho un progetto (repository privato) che ha più sottomoduli (anche privati). Ho un server ospitato su Amazon EC2 che ospiterà il progetto e voglio utilizzare il nostro repository privato Github.Errore di autorizzazione negato quando si utilizzano le chiavi di distribuzione Github

Ho generato una chiave ssh per il progetto principale e l'ho aggiunta alle chiavi di distribuzione dei progetti. Ho anche generato chiavi ssh aggiuntive per ogni sottomodulo e l'ho aggiunto alle loro chiavi di implementazione.

Quando provo e clonare il progetto (usando git @ GitHub), non funziona:

Autorizzazione negata (chiave pubblica). fatale: il terminale remoto riattaccato in modo imprevisto

Ho controllato due repo e le loro chiavi di implementazione e tutto sembra corretto. C'è qualche altro piccolo passo che mi manca?

+0

La porta 22 è aperta? Cosa dice 'ssh -vT git @ github.com'? - http://help.github.com/ssh-issues/ –

+0

Ecco i risultati (sotto) –

+0

OpenSSH_5.3p1, OpenSSL 1.0.0i-fips 19 apr 2012 debug1: lettura dei dati di configurazione/etc/ssh/ssh_config debug1 : Applicazione delle opzioni per * debug1: connessione a github.com [207.97.227.239] porta 22. debug1: connessione stabilita. –

risposta

6

Risposta breve: non esiste un modo semplice per utilizzare le chiavi di distribuzione con i sottomoduli privati. Nella mia esperienza ci sono due opzioni:

  1. continuare a utilizzare moduli, ma smettere di usare distribuire le chiavi e di utilizzare invece una chiave singola livello di account SSH che concede l'accesso a tutti i repository privati ​​(più facile, meno sicuro)
  2. arresto utilizzando moduli, continuare ad usare distribuire le chiavi, e manualmente git clone ogni repository passando la chiave privata SSH che corrisponde al tasto di distribuzione (più complicato, più sicuro)

la ragione di questo è git clone attiva una connessione SSH che può utilizzare solo una singola chiave privata SSH a un'ora (ad es. ~/.ssh/id_rsa). La chiave privata SSH utilizzata deve corrispondere alla chiave di distribuzione del repository e le chiavi di distribuzione devono essere univoche per progetto. Nel caso di un clone del sottomodulo, stai utilizzando solo una singola chiave privata. Quella chiave potrebbe corrispondere al tuo progetto di livello superiore, ma sicuramente fallirà nei progetti figlio con l'errore che hai fornito.

Spero che questo sia utile ..

+1

A partire da 2 anni dopo non esiste ancora una soluzione migliore? – aledalgrande

+3

OK, trovato: https://github.com/blog/1270-easier-builds-and-deployments-using-git-over-https-and-oauth – aledalgrande

Problemi correlati