2013-01-20 24 views
8

Ho uno strano problema con la clonazione di un repository git da un server ecazon amazon. Funziona senza problemi su uno dei miei computer con Ubuntu 12.04, mentre su un altro utilizzando 12.10 mi dà un errore:.ssh config con amazon ec2 e git

ssh: Could not resolve hostname ec2server: Name or service not known 
fatal: The remote end hung up unexpectedly 

E 'come se non riconosce il mio file di configurazione. Io uso il seguente comando git per clonare:.

sudo git clone ec2server:/var/www/project.git 

o

sudo git clone ec2xxx.compute-1.amazonaws.com:/var/www/project.git 

Le due file di configurazione sono identici su entrambi i computer, all'interno del ~/ssh con il seguente contenuto:

Host ec2server 
    Hostname ec2XXX.compute-1.amazonaws.com 
    User ubuntu 
    IdentityFile ~/.ssh/mykey.pem 

Se sostituisco ec2server con l'indirizzo effettivo, viene visualizzato il seguente errore:

Cloning into 'project'... 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

Grazie in anticipo.

risposta

5

Recentemente ho dovuto re-installare il sistema che ha tenuto la configurazione di lavoro e non sono riusciti a replicare, quindi non è la versione per Linux (molto probabile). Quello che sono riuscito a fare è che sono riuscito a usare lo script originale menzionato per clonare il repository nella mia home directory. Qui ha preso il nome correttamente, ma se ho navigato in/var/www, quello che stavo facendo prima, mi ha dato lo stesso errore: potrebbe ec2server non trovato ....Quindi immagino che il problema debba fare qualcosa con la combinazione di autorizzazioni + comandi. Se qualcuno può capire come farlo funzionare, contrassegnerò la sua risposta come una risposta corretta, fino a quel momento segnerò il mio come quella corretta, poiché questo è il più vicino al corretto.

UPDATE

ho capito qual era il problema: ho dovuto cambiare il permesso sulla cartella/www/var al fine di essere in grado di clonare in quella directory. Ora è 777 (usato solo per dev su una macchina locale).

+0

Sembra buono, e funziona per te, quindi +1. La mia risposta non era abbastanza specifica. – VonC

5

Di solito è un problema di autorizzazione.
Il chmod nelle directory padre del file di configurazione potrebbe essere diverso tra i due computer.
(e non sto parlando solo la directory di padre immediato .ssh, ma anche tutte le directory superiori)

Vedere "Git SSH authentication", ma anche sapere che se una delle directory padre è scrivibile per il gruppo o mondo , ssh non funzionerà.


Si noti inoltre che il secondo comando non è giusto, e dovrebbe essere:

git clone [email protected]/var/www/project.git 

no ':' (un ':' significa utilizzare un file config, con una scp -come sintassi)

può funzionare solo se si dispone di ~/.ssh/id_rsa e ~/.ssh/id_rsa.pub.
Se avete mykey.pem, allora si necessità un file config per ssh per sapere dove sono le chiavi pubbliche e private, il che significa che solo questo può funzionare:

git clone ec2server:/var/www/project.git 

Un altro chack (dopo this thread e questo forum) è per verificare se c'è qualche problema DNS/DHCP (un po 'come in "Working with git behind a dynamic DNS").

Host ec2server 
    Hostname 1xx.xxx.xxx.xxx # ip address of ec2XXX.compute-1.amazonaws.com 
    User ubuntu 
    IdentityFile ~/.ssh/mykey.pem 
+0

Ma la directory parrent è la home directory – Pio

+0

@Pio Si intende il file 'config' in'/home/yourLogin', invece di '/ home/yourLogin/.ssh'? – VonC

+0

@Pio vedere http://stackoverflow.com/a/10042145/6309 o http://stackoverflow.com/a/8172628/6309 per esempi di file di configurazione per ssh. – VonC