2012-06-06 21 views
6

Ho creato correttamente il repository gitolite-admin.git sul server (ad esempio) . Posso clonare questo repository sul mio computer locale (ad esempio) 10.14.42.7 emettendo git clone [email protected]:gitolite-admin. Ho dovuto aggiungere alcune righe nel file .ssh/config per verificare che venga utilizzata la chiave privata corretta.agli utenti viene richiesta la password durante l'utilizzo di gitolite

Poi ho aggiunto un utente dilawar-conf/gitolite.conf file e un adeguato chiave dilawar.pub-keys cartella. Ho aggiunto e impegnato questo commit al repository gitolite-admin. Ho anche aggiunto un'altra voce nel file .ssh/conf in modo che venga utilizzata una chiave privata corretta. Ma quando provo a fare git clone [email protected]:testing, gitolite chiede la password. Ho l'impressione che non debba creare dilawar utente su 10.107.105.13. Ho controllato accedendo al server che il repository testing.git esiste e la chiave pubblica dilawar.pub è stata aggiunta a .ssh/authorized_keys.

Ho anche provato ssh -vvvv [email protected] per verificare se viene offerto il file corretto. Ecco il mio file .ssh/conf.

HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/gitolite 

Host 10.107.105.13 
    HostName 10.107.105.13 
    User dilawar 
    IdentityFile ~/.ssh/id_rsa 

Cosa sto facendo male?

risposta

8

nel file di configurazione, vedo:

User dilawar 

che è sbagliato. la comunicazione ssh a un server gitolite viene sempre eseguita con lo stesso account (qui gitolite).
Ciò che cambia è la chiave privata utilizzata, che aiuterà la gitolite a determinare la tua identità.

Quello che ~/.ssh/config di file dovrebbe essere simile è:

Host admin 
    HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/gitolite 

Host dilawar 
    HostName 10.107.105.13 
    User gitolite 
    IdentityFile ~/.ssh/id_rsa 

per la clonazione gitolite-admin, si usa:

git clone admin:gitolite-admin 

Per la clonazione di un pronti contro termine dilawar ha accesso a:

git clone dilawar:aRepo 

Ulteriori informazioni su "Gitolite: adding user not working, and DENIED by fallthru when cloning as root?".
Vedere anche "how gitolite uses ssh"

Aggiunta la chiave pubblica per il file del server ~git/.ssh/authorized_keys è come ssh utilizza pubkeys per autenticare gli utenti.
Diciamo che [email protected] sta tentando di accedere come [email protected].
Quello che devi fare è prendere il file ~sita/.ssh/id_rsa.pub per l'utente sita sulla stazione di lavoro e di aggiunta dei suoi contenuti (ricordatevi che è solo una linea) per ~git/.ssh/authorized_keysper l'utente git sul server.

Il file authorized_keys può avere più chiavi pubbliche (da molte persone diverse) aggiunte in modo che ognuna di esse possa accedere a [email protected].

3

Ho funzionato clonando il repository utilizzando il nome utente gitolite.

git clone [email protected]:repo 

Se le chiavi vengono aggiunte correttamente, tirare e spingere ulteriormente procederà senza intoppi.

Accetto la risposta VomC come risposta migliore.

+0

Non ho visto la tua risposta al momento. +1 per il feedback. Ho migliorato la formattazione della mia risposta. – VonC

0

Ho dovuto modificare /etc/ssh/sshd_config e aggiungere git (l'utente) alla riga che inizia con AllowUsers. Quindi ho dovuto aggiungere git a un gruppo sysadmin che era anche permesso sulla riga sshd_config che inizia con AllowGroups.

Non dimenticare di riavviare il daemon ssh con sudo service ssh restart.

Nota: non ho dovuto ssh-copy-id o aggiungere la chiave pubblica per /home/git/.ssh/authorized_keys come suggerito prima

0

Ho avuto lo stesso problema, con una soluzione diversa a causa della mia configurazione (sviluppatore del gitolite raccomanda contro questo btw.) . Ho impostato il mio utente gitolite come "git", quindi avevo bisogno di du git clone [email protected]:repo.git

Problemi correlati