2011-02-03 29 views
6

Ho installato un server gitosis seguendo le istruzioni da here. Funziona bene per l'utente iniziale ma recentemente ho aggiunto un nuovo utente. Ecco i passi che ho fatto.gitosis richiedendo la password

  • Creata una coppia di chiavi rsa utilizzando ssh-keygen con nome file johndoe.
  • Quindi copiato sul keydir in gitosis admin repo.
  • modificato il file gitosis config e aggiunto johndoe utente all'elenco dei membri
  • impegna le modifiche utilizzando git commit -a -m "what i did"
  • spinto i modifiche al server

Dopo che ho cercato di controllare con il nuovo file di chiavi. Richiede la passphrase e quando la inserisco correttamente, chiede la password per l'utente git !!! Non c'è password per git utente.

Ora ho disattivato PasswordAuthentication in sshd_config e ora dice "Autorizzazione negata (chiave pubblica). Ho controllato il file authorized_keys dell'utente git e solo una chiave è autorizzata al suo interno, cioè la chiave iniziale per l'amministratore della gitosi.

Inoltre ho ricontrollato i permessi sul gancio ./gitosis-admin.git/hooks/post-update e ha 755

+0

Non ricordo nemmeno cosa ho fatto per risolverlo o se addirittura l'ho risolto. Attualmente uso la gitolite e sento che è molto meglio. Cosa dovrebbe essere fatto per una domanda come questa? – andho

risposta

6

Gitosis è una specie di stupido - è il nome del file utilizzato per il file di chiavi letteralmente "johndoe"? In tal caso, modificare:

git mv keydir/johndoe keydir/johndoe.pub 
git commit -m "changed key name" 
git push 

e riprovare.

Inoltre, come sottolinea Arlen Cuss, assicurarsi che in realtà sia la chiave pubblica, non la chiave privata.

+0

OP, se il problema è la chiave pubblica vs. privata, si prega di accettare la risposta di Arlen Cuss. Lascio questo qui per quelle persone che hanno lasciato il ".pub" fuori dalle chiavi pubbliche. – ebneter

+0

A dire il vero non ho idea di cosa gitosis * faccia * se viene inserita una chiave privata, ma presumo che non funzioni, e che questo potrebbe essere il problema .. chissà: -} – Ashe

+0

@Arlen Cuss , installerà la chiave privata nel file delle chiavi autorizzato, quindi ssh non funzionerà. (Ho avuto persone farlo. :-)) – ebneter

1

assicurarsi che si sta mettendo la vostra chiave pubblica all'interno del vostro repo gitosis, e non il vostro uno privato!

Quando si genera un file di chiavi, si ottiene un file .pub, utilizzare quello, ma inserire il nome nel numero gitosis.conf senza lo .pub.

+0

Oooh, buon punto. :-) – ebneter

1

Assicurarsi di aver anche aggiunto (git add) i file .pub e impegnato e trasferito correttamente nel repository.

5

Ciao, ho avuto lo stesso problema, e finalmente ho trovato una via d'uscita.

ho dovuto seguire le istruzioni fornite da molti siti web, ma ogni volta dopo

git clone [email protected][serveur_name]:gitosis-admin.git 

E aveva chiesto la password per GIT.

Risoluzione: ho inserito la chiave di amministrazione pubblica (quello creato sul mio utente del client, poi importato in directory tmp del server) dentro il mio file authorized_keys (che si trova nella /home/git/.ssh/ directory del server) e funziona ora.

cp authorized_keys authorized_keys.bak 
cat /tmp/id_dsa_git.pub >> authorized_keys 

ho trovato questo @http://fclose.com/b/linux/366/set-up-git-server-through-ssh-connection/

0

recente ho incontrato questo problema con un repository privato per lavoro. Ho trovato questa risposta e ho letto le risposte; this e this hanno fatto il trucco.

Per riassumere per i posteri, assicurarsi che si aggiunge la chiave .pub alla directory gitosis-admin/keydir. Deve essere un file .pub.

Impegna & Invia le modifiche a gitosis-admin.

Il tuo ~/.ssh/authorized_keys verrà aggiornato automaticamente, quindi non è necessario reindirizzare il gatto all'output del file della chiave pubblica.

Spero che questo aiuti

0

una cosa che va spesso sbagliato per gli utenti Windows e non è catturato dalla maggior parte dei tutorial là fuori (in quanto presuppongono siete su un client Linux)

msysgit, la console di Windows git, è alla ricerca per la vostra chiave privata a /home/YOURUSERNAME/.ssh/id_rsa che a Windows è (Windows 7) C: \ Users \ YOURUSERNAME.ssh \ id_rsa

mentre la maggior parte ottenerlo proprio con la cartella, dal momento che è stata creata automaticamente, manca il file DEVE essere nominato "id_rsa" o non sarà usato da msysgit. Non ho trovato un modo per dire a msysgit di usare altre chiavi

0

Molto probabilmente quello che è successo è che il gancio post-aggiornamento non è stato eseguito correttamente.

Verificare che ~ git/.ssh/authorized_keys abbia la chiave pubblica in esso.

In caso contrario, il gancio post-aggiornamento non è stato eseguito. Permessi che sono stati successivamente modificati? Qualche altro errore di configurazione. Copiato da qualche altra parte?

  1. Sul server, cassa gitosis admin: git clone /path/to/gitosis-admin.git. Apporta una modifica insignificante a gitosis.conf. Controlla che la tua chiave pubblica sia in keydir. Ho dovuto eseguire questo come utente git.

  2. Confermare gitosis.conf. git add gitosis.conf & & git commit -m "aggiorna le chiavi".

  3. Controllare ora il file authorized_keys.

  4. Cambiare gitosis.conf e riprovare.

Accesso di prova. Se authorized_keys non viene aggiornato dopo questo processo, cerca nei log i messaggi di errore.

Problemi correlati