2012-09-26 13 views
8

Sono passato a molte domande, ma nulla sembra risolvere il mio problema. O per essere più precisi non sono sicuro se sto facendo il tutto correttamente. Quindi ecco:Impostazione di jenkins su centos: problemi con le chiavi ssh e git

Hanno installato centos 6.3 OS. Poi ho seguito la seguente guida per installare Jenkins:

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions

Jenkins funziona bene. Ora sto cercando di creare un semplice lavoro di compilazione, che richiede di clonare un repository git. (Ho installato plug-git)

In URL del repository scriv il seguente: git @ gitserver: myrepo.git Naturalmente ho un errore: stderr: Host verifica della chiave non è riuscita.

ok, ho bisogno di generare le chiavi ssh e tutto andrà bene. Così faccio la seguente:

su - jenkins 

ma purtroppo non passare all'utente Jenkins.

cat/etc/passwd

mostra la seguente:

jenkins:x:496:492:Jenkins Continuous Build Server:/var/lib/jenkins:/bin/false 

così sembra che non ha una normale directory home.

La domanda è: come faccio a generare le chiavi per jenkins o se i passaggi precedenti non sono il modo giusto per farlo, come posso risolvere il problema?

Grazie mille!

Aggiornamento: ho generato le chiavi (come utente root) e le mise in Jenkins casa e ha fatto esattamente e copiati chiave pubblica al server git. Ancora non ha aiutato.

Quando guardo il registro della build si dice:

Started by user anonymous 
Building in workspace /var/lib/jenkins/jobs/myrepo/workspace 

questo utente anonimo è questo un altro utente creato da Jenkins, o è ancora Jenkins che esegue i comandi?

+0

Ho lo stesso problema :(. – Nilesh

risposta

2

Penso che la directory .ssh dovrebbe vivere in/var/lib/jenkins.

funziona per me

+0

infatti è lì, ma era vuoto Cosa ho fatto ho generato le chiavi in ​​quella directory. Ho preso la chiave pubblica e aggiunto al file authorized_keys su git server. non funziona ... – Tadzys

6

Sto supponendo che avete accesso root, se tu fossi in grado di installare l'RPM Jenkins. Stavi seguendo l'utente jenkins mentre sei loggato come root? In caso contrario, procedere o utilizzare

sudo su - jenkins 

se l'utente che ha effettuato l'accesso ha accesso sudo.

Poi gestita

ssh-keygen -t rsa 

per generare una coppia di chiavi RSA per l'utente Jenkins, e si può caricare la chiave pubblica al server git. La chiave verrà generata come /var/lib/jenkins/.ssh.id_ra.pub se si prendono le impostazioni predefinite.

+1

Il problema è che non passa a casa jenkins, ma rimane nella mia abitazione degli utenti, ma ho comunque generato le chiavi come utente root in casa jenkins e ho fatto esattamente come hai detto tu, ma l'errore persiste ancora – Tadzys

+0

Hmm, ho scritto male il mio comando sudo sopra - corretto appena questo –

+5

E 'corretto, che il proprietario del file chiave è root? Probabilmente l'utente jenkins non ha shell di login e questa può essere la causa./etc/passwd' file per una voce come 'jenkins: x: 999: 1001 ::/var/lib/jenkins:/sbin/nologin' e cambia'/sbin/nologin' con '/ bin/bas h' temporaneamente per passare a jenkins dell'utente. –

5

1 Jenkins cambiamento utente di accesso impostazione

vi/etc/passwd

aggiornamento/bin/false a/bin/bash

2 su - Jenkins

casa

Jekins utente sarebbe/var/lib/Jenkins

3 ssh-keygen

cat .ssh/id_rsa.pub

copia questo tasto per bitbucket

4 ssh [email protected]

questo sta per impostare la chiave bitbucket ssh in .ssh/known_hosts

Ora dovresti essere in grado di accedere a

2

Stavo riscontrando problemi con l'utente di jenkins. Avevo bisogno di creare effettivamente l'utente correttamente nel sistema in modo che potessi accedere ad esso. Ho eseguito questo comando per aiutarmi a creare l'utente Jenkins nel sistema:

su -s /bin/bash jenkins 
2

1) Prima di tutto Jenkins come reale dell'utente, la modifica file/etc/passwd Cambio

/bin/false to /bin/bash

2) Accesso al utente Jenkins, Ora home directory Jenkins sarà/var/lib/Jenkins

su - jenkins 

3) generano ancora una volta le chiavi SSH (chiavi saranno creati in /var/lib/jenkins/.ssh)

ssh-keygen -t rsa 

4) copiare id_rsa.pub chiave e incollare authorized_keys del Git presentare

5) Ancora se non funzionerà, probabilmente controlla i permessi della directory .ssh e contenuti

chmod 700 ~/.ssh && chmod 600 ~/.ssh/* 
1

al fine di effettuare il login come "Jenkins" utente, forse si potrebbe provare questo:

sudo -s -H -u jenkins 

E cercare di richiamare:

bash-4.1$ whoami 
jenkins 

Spero che sia d'aiuto.

2

jenkins è un account di servizio, non ha una shell di progettazione. È generalmente accettato che gli account di servizio non dovrebbero essere in grado di accedere in modo interattivo.

Inizialmente non ho risposto a questa domanda poiché si tratta di un duplicato di una domanda che è stata spostata su un errore del server. Avrei dovuto rispondere piuttosto che legato alla risposta in un commento.

se per qualche motivo si desidera effettuare il login come Jenkins, è possibile farlo con: sudo su -s/bin/bash Jenkins

0

Quello che ho fatto: sudo -u Jenkins ssh-keygen. Funziona così lontano