2012-08-01 11 views
16

Sto provando a far funzionare GitLab sul mio server. Ho seguito le istruzioni di installazione nella pagina github di gitlab e tutto è andato per il meglio.GitLab richiede la password git @ localhost per passare a un repository

Il problema è, quando creo un repo e cerco di

sudo git push -u origin master 

sono richiamato per 'password git di @ localhost:'

L'utente git non dispone di una password, quindi questo è un problema.

Altre persone che si sono imbattute in questo problema hanno suggerito di aggiungere git a AllowedUsers nel mio sshd conf ma non ho un campo AllowedUsers lì, quindi non sembra essere un problema.

Sono ancora abbastanza nuovo per le cose ssh quindi credo che sia una sorta di problema chiave ssh, anche se ho provato ad aggiungere tutte le chiavi ssh rilevanti a /home/git/.ssh/authorized_keys e verificato che non ci sono linee rompe nel file.

Cordiali saluti, mia installazione completamente supera il test fornito nel wiki gitlab:

sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production 

Tutti i suggerimenti molto apprezzati!

EDIT

Così, ho finalmente ottenuto intorno a questo solo impegnarsi in un repo da una macchina diversa. Com'ero, ero SSHed nella stessa macchina su cui gitlab stava girando. Non appena ho provato a eseguire il commit da una macchina diversa dall'host, ha funzionato benissimo. Quindi, potrebbe essere una soluzione per alcune persone (è per noi, dal momento che sviluppiamo su macchine separate rispetto ai nostri server).

Questo è ancora un problema a tempo indeterminato per chiunque cerchi di ospitare e sviluppare sulla stessa macchina che ha eseguito questo.

+0

nuove domande è http: // StackOverflow. it/questions/15495843/gitlab-git-user-password –

+0

Non dovresti usare 'sudo' con' git push' – StenSoft

risposta

3

Se l'installazione è andata bene, significa che il tuo gitlab è in grado di clonare il repository admin gitolite senza problemi.
Ma tu dici che passa il controllo dello stato, il che significa che stai usando, per la connessione ssh, un account chiamato 'gitlab'.

Ciò significa anche che qualsiasi client dovrà ssh con lo stesso account 'gitlab', non 'git'.
Quindi, se la vostra chiave SSH è stato aggiunto attraverso l'interfaccia gitlab, allora si può git clone/git push ad un'origine nome remoto che avrebbe l'indirizzo '[email protected]'

eseguire il debug di un po 'di più, controllare alcuni altri suggerimenti indicato in "Setup Git Remote SSH (git-upload-pack/git-receive-pack)":

Se non è possibile spingere in locale (sul server stesso, vale a dire il 'localhost'), provare almeno:

ssh -vvvT [email protected] 

non dovrebbe richiedere alcuna password, in quanto Entrambi esistono /home/gitlab/.ssh/id_rsa e /home/gitlab/.ssh/id_rsa.pub.

+0

Ciao VonC, grazie per il tuo aiuto qui. Solo per verificare, io sono SSHed nella macchina server con un account diverso da gitlab (il nome utente è devin). ssh -vvvT gitlab @ localhost richiede una password, sfortunatamente. Non ho provato ad aggiungere una chiave attraverso l'interfaccia, in quanto non ho notato un'opzione per farlo su gitlab. Fammi sapere se hai ulteriori suggerimenti. Grazie! – DevinR

+0

@DevinR se provi ssh senza aver prima aggiunto la tua chiave pubblica, è normale che ssh chieda una password: cerca la tua chiave di pub in ~ gitlab/.ssh/authorized_keys e non la trova. Devi generare una chiave pubblica/privata (come in http://stackoverflow.com/a/10921120/6309) e copiare la chiave pubblica nella pagina dell'account gitlab. – VonC

+0

Ora ho generato un utente su gitlab e ho aggiunto la mia chiave ssh lì. Ho anche aggiunto la chiave a /home/gitlab/.ssh/authorized_keys e /home/git/.ssh/authorized_keys. Sfortunatamente sto ancora avendo lo stesso problema. Grazie ancora per il vostro aiuto. – DevinR

0

Mi sono imbattuto in un problema che presentava sintomi simili. Il mio problema era che ho due computer dietro un router. Il router è impostato per il port forwarding del traffico SSH (porta 22) al computer 1. Gitlab è installato sul computer 2. Sto usando un dominio e un IP pubblico per connettersi. Quando spingo, il traffico SSH viene indirizzato al computer 1.C'è un utente git sul computer 1 semplicemente dall'aver installato git. Computer 1 mi richiede la password dell'utente git.

La mia installazione ha superato anche tutti i controlli pronti.

Non sono sicuro che tu abbia lo stesso problema, ma i sintomi sono esattamente gli stessi, quindi ho pensato che questo potesse essere d'aiuto.

0

Questo mi è successo parecchio ultimamente ultimamente - per progetti di lavoro, git mi chiedeva il mio indirizzo email e la mia password. Una volta entrato, continua ok ma è fastidioso.

posso risolvere questo problema per qualsiasi applicazione che ho accesso a con:

git config remote.origin.url [email protected]:user_org_or_co/repo_name_itself 

esempio

git config remote.origin.url [email protected]:smithw/bookmarkapp 
0

Gli utenti git e gitlab sono privi di password?

Come è il ?

controllo se questa linea è nel file: PermitEMptyPassword Yes

Comunque credo che non sicuro, nella mia installazione, ho messo questo 'Sì', clonare e quindi mantenere la vecchia configurazione ... Quando la clonazione del ssh_key è salvato dall'utente git, e non chiederà più la password ..

Ma ormai, mi imbatto in un altro errore, quando sto andando a spingere, per ogni nuovo utente, dobbiamo riconfigare ssh per consentire vuoto push e quindi tieni indietro la configurazione.

(non ho ancora testato questo metodo, perché ho scoperto che il mio gitlab non sta creando i pronti contro termine in uso git: /)

4

TL; DR

chiavi negozio on entrambi gitlab DB e lato gitolite. Dovresti usare la cartella gitolite-admin.git di fabbrica, non usare il tuo backup! E ricostruire i tasti per gitolite in seguito con il comando dei tasti di aggiornamento. (aggiornare le chiavi già salvate all'interno del db gitlab a gitolite)

sudo -u gitlab -H bundle exec rake gitlab:gitolite:update_keys RAILS_ENV=production 

Molto probabilmente è perché c'è qualcosa di problema sulle chiavi gitolite non salvare correttamente. Queste chiavi (per il login) sono in realtà tenute separatamente da gitlab & gitolite. Per tirare/spingere utilizza effettivamente i tasti salvati all'interno di gitolite. (Git/repository/gitolite-admin.git/index, git/.gitolite/keydir, git/.ssh/authorized_keys)

gitlab normalmente dovrebbe aiutare a salvare quelle chiavi importati sul Web ai file gitolite. Tuttavia, per alcuni motivi è fallito. Poiché le chiavi non vengono salvate correttamente all'interno di gitolite, il client/server non riesce a utilizzare le chiavi e fallback alla password.

È necessario controllare e correggere le chiavi salvate all'interno di gitolite per correggere i problemi.

check-out per più https://groups.google.com/forum/?fromgroups=#!topic/gitlabhq/X0z_9l7L7A8

0

Questo può essere troppo semplice, ma ho avuto lo stesso problema. Immagino sia perché ha scelto localhost come nome di dominio.

Ha funzionato quando ho effettuato l'accesso da un altro computer al mio computer localhost, quindi ho provato a eseguire il commit. È abbastanza stupido, ma vale la pena provare.

2

Ho ricevuto la stessa richiesta di password. Il mio problema era che avevo limitato l'uso di ssh a solo un paio di utenti. Ho aggiunto l'utente git alla lista AllowUsers sshd_config, e tutto ha funzionato alla grande.

1

Assicurati che il tuo profilo gitlab abbia la tua chiave ssh pubblica. Accedi a gitlab, vai al tuo profilo e seleziona il pulsante "Aggiungi chiave pubblica". Copia e incolla il file "keyfile" .pub nella casella Key. C'erano alcune versioni di gitlab che avevano un bug che quando si aggiungeva la propria chiave pubblica, non aggiornava il file authorized_keys. Verifica (ma non aggiungere manualmente) che la tua chiave pubblica si trova nel file authorized_keys dopo averla aggiunta al tuo profilo. Se questo non è il problema, allora forse una delle risposte precedenti ti sarà d'aiuto.

1

sul server git modifica /etc/ssh/sshd_config

rimuovere il commento le seguenti righe nella sezione di autenticazione o aggiungerli:

PubkeyAuthentication yes

AuthorizedKeysFile %h/.ssh/authorized_keys

dare il vostro server di un ciclo di alimentazione e poi il fuoco su gitlab

+1

"dare al tuo server un power cycle" sembra eccessivo - basta riavviare sshd. –

0

Mi sono confuso con questo tempo. Quando si utilizza sudo git, significa che il git viene avviato come root. La domanda sarebbe: hai creato la chiave SSH per root e l'hai inserita in Gitlab?

Immagino di aver creato la chiave SSH senza sudo (che è per il tuo account normale), inserisci il publickey SSH in Gitlab, quindi esegui sudo git.

È possibile provare a eseguire git senza sudo. E se hai problemi di autorizzazione alla cartella, che ti hanno fatto usare sudo in primo luogo, prova a dare accesso al tuo account utente a quella cartella. O forse prova il git normalmente in una cartella che hai il permesso di scrittura.

0

C'è un barrato per quello here.

Per determinare la causa del problema, controllare i registri sul server tramite sudo grep sshd /var/log/auth.log.

Fino 13 dicembre 2013 commettere b24d5d, il problema è stato causato sulla macchina di sviluppo a causa di Vagrant eccesso di autorizzazioni per .ssh/necessario avere:

chmod 700 ~/.ssh 
chmod 600 ~/.ssh/authorized_keys 

o ssh si rifiuta di effettuare la connessione rsa e sudo grep sshd /var/log/auth.log dice:

Authentication refused: bad ownership or modes for file /home/git/.ssh/authorized_keys  

Il problema è stato risolto impostando sshd alla modalità non sctrict per lo sviluppo, permettendo così di corri correttamente anche se i permessi sono troppo gratuiti.

0

Ho incontrato lo stesso problema da poco, e ha scoperto che il problema per me era che SELinux impediva sshd l'accesso al file diauthorized_keys nella directory dei dati di gitlab /var/opt/gitlab/.

Per risolvere questo problema, modificare /etc/selinux/targeted/contexts/files/file_contexts.homedirs e aggiungere la riga:

/var/opt/gitlab/\.ssh/.* system_u:object_r:ssh_home_t:s0 

Quindi eseguire:

$ restorecon -Rv /var/opt/gitlab 

Fonte: https://serverfault.com/questions/50573/selinux-preventing-passwordless-ssh-login

0

Ciò significa che il server gitlab ssh non è stato configurato correttamente .

Modifica /etc/ssh/sshd_config e assicurare che:

PasswordAuthentication no 
ChallengeResponseAuthentication no 

Questo dovrebbe far rispettare chiave SSH solo gli account di accesso, che è anche un buon misure di sicurezza. Molte nuove distribuzioni lo hanno già abilitato per impostazione predefinita.

Non chiedetemi se vieni bloccato fuori, chiaramente SO non è il posto dove chiedere come configurare e utilizzare una coppia di chiavi privata/pubblica.

0

Per chiunque abbia questo problema con Bitnami o qualsiasi altra configurazione che vuole risolverlo rapidamente, basta invece utilizzare il percorso completo.

git clone [email protected]_adress:/full/path/to/project.git 

modificato: Ho dimenticato di dire, è molto importante verificare se sono stati aggiunti le chiavi SSH per git-Lab attraverso la pagina web ..

+0

Sembrava promettente ma chiedeva ancora la password con l'indirizzo del server adesso – pal4life

Problemi correlati