web-dev-qa-db-fra.com

Utilisateur Jenkins sur l'installation Apt-Get Install

Je viens d'installer Jenkins sur mon serveur Ubuntu via les étapes d'installation de Debian (en utilisant l'installation apt-get). Je veux que ma build soit extraite d'un dépôt git privé sur GitHub. Avec cela, je dois utiliser l'accès SSH pour accéder à mon référentiel.

La plupart de mes résultats de recherche viennent de dire de se connecter en tant qu'utilisateur Jenkins et de générer une clé SSH pour mon compte GitHub, mais en installant via le gestionnaire de paquets debian, je n'ai pas de mot de passe pour l'utilisateur Jenkins.

Alors, comment puis-je générer une clé SSH pour mon serveur Jenkins à utiliser?

55
Dave Long

Je prévois que de temps en temps, vous voudrez pouvoir vous connecter en tant que jenkins pour effectuer d'autres tâches, et donc je résoudrai le problème plus général. Une réponse stricte à votre question est incluse à la fin.

Changer le mot de passe de jenkins sans le savoir

À partir de n'importe quel compte disposant des autorisations Sudo , vous pouvez réinitialiser le mot de passe de jenkins à quelque chose de votre choix:

Sudo passwd jenkins

Il se peut que l'on vous demande d'abord votre propre mot de passe pour pouvoir utiliser Sudo. Ensuite, vous serez invité à entrer le nouveau mot de passe pour jenkins, et enfin une confirmation de ce nouveau mot de passe.

Si votre utilisateur avec des droits Sudo est appelé joe, voici à quoi pourrait ressembler une session:

joe $ Sudo passwd jenkins
[Sudo] password for joe:     **you enter joe's passwd**
Enter new UNIX password:     ** you enter new jenkins passwd**
Retype new UNIX password:    ** you enter new jenkins passwd**
passwd: password updated successfully

Alternative: connectez-vous en tant que jenkins sans son mot de passe

Alternativement, en utilisant à nouveau Sudo à partir d'un autre compte approprié, vous pouvez vous connecter en tant que jenkins sans qu'on vous demande son mot de passe:

Sudo su - jenkins

Un côté: éviter les mots de passe Confusion rapide

Avant d'émettre Sudo passwd jenkins, nous aimerions peut-être d'abord nous authentifier séparément avec Sudo pour éviter toute confusion autour de la question "à qui me demande le mot de passe maintenant?".

Sudo -v
Sudo passwd jenkins

Après une authentification réussie par Sudo, il y a une fenêtre (par exemple 15 minutes) où nous ne serons pas invités à nous authentifier à nouveau. (Notez que vous pouvez immédiatement invalider (tuer) cette session avec Sudo -k, si vous voulez expérimenter.)

La réponse stricte promise

Sudo -u jenkins ssh-keygen

Utilisez ensuite cat pour afficher le contenu de la clé publique à transmettre à github (mais le chemin n'est qu'un exemple):

  Sudo cat ~jenkins/.ssh/id_rsa.pub

L'emplacement exact et le nom du fichier de clé publique dépendent de ce que vous avez entré dans les invites de ssh-keygen, ci-dessus. J'ai utilisé un raccourci vers le répertoire personnel de jenkins, ~jenkins.

Liens connexes

94
neillb