Permission denied (clé publique) au cours de récupérer à partir de GitHub avec Jenkins utilisateur sur Ubuntu
Voici ma configuration:
- Jenkins est en cours d'exécution sur ma machine linux comme "jenkins' utilisateur.
- J'ai généré une clé ssh-paire comme décrit dans Linux - Installation De Git, pour le "jenkins' utilisateur.
- Quand je
sudo su jenkins
et essayerssh -vT [email protected]
, je me suis toujours demandé mon mot de passe, mais je suis toujours finalement authenicated. (l'option verbose les spectacles qui est utilisé, entre autres). - J'ai pu cloner mon repo à partir de GitHub à l'aide de jenkins:
Ainsi:
[email protected]:~/jobs/test git/workspace$ git pull
Enter passphrase for key '/var/lib/jenkins/.ssh/id*_rsa':
Already up-to-date.
Jusqu'à présent, j'ai suivi les instructions à la lettre. Le problème est que le Jenkins travail échoue avec l'erreur suivante:
status code 128:
stdout:
stderr: Permission denied (publickey).
fatal: The remote end hung up unexpectedly
C'est la même erreur que j'obtiens quand j'faute de frappe mot de passe (mais bien sûr, Jenkins ne me demandez pas pour la phrase de passe). Les pages suivantes:
m'indiquent que ssh-agent peut aider à se rappeler de la phrase, ce qui n'est quand je suis en utilisant ma propre utilisateur, mais pas le jenkins id. Notez que lors de l'exécution que mon utilisateur normal rendements:
echo "$SSH_AUTH_SOCK"
/tmp/keyring-nQlwf9/ssh
Lors de l'exécution de la commande de même que mon "jenkins' ne donne rien (pas même la permission denied)
Ma compréhension du problème est que le mot de passe n'est pas souvenu.
Avez-vous une idée?
Doit-je commencer un ssh-agent ou porte-clés de manager pour l'utilisateur jenkins? Comment?
Ou est ssh transfert approprié lors de la transmission à la même machine?
Toute brillante idée?
ps: je n'ai jamais sudo gitted
, j'ai toujours utilisé jenkins ou mon compte d'utilisateur (comme indiqué dans ce post - Ubuntu/GitHub Clé SSH Problème)
- essayez de [ce][1] le secret est de créer un .clé ssh via jenkins utilisateur [1]: stackoverflow.com/questions/8910848/...
- Merci! Elle fonctionne.
- en fait, ce n'a pas été de créer la clé ssh avec l'utilisateur jenkins, c'est nécessaire, mais pas suffisante. Ce qui les a aidé a été de quitter la phrase de passe vide. (donc il n'était pas demandé....)
- Donc, est-ce de travailler ou pas? S'il vous plaît écrire une réponse courte (et pas un commentaire) à votre question en décrivant comment il a été résolu. Merci!
- Essayez cette stackoverflow.com/questions/46893328/...
Vous devez vous connecter pour publier un commentaire.
Puisque personne n'a écrit la réponse dans les commentaires depuis plusieurs mois, je vais vite le faire.
Il y a 2 problèmes possibles/solutions:
id_rsa créé avec d'utilisateur incorrect
Créer id_rsa que l'utilisateur jenkins (voir hudson ne peut pas extraire de dépôt git)
Laisser passphrase vide
J'ai eu autour de ce problème en laissant simplement la passphrase vide lors de la création des clés.
Pour résumer ce qui doit être fait sur le serveur Jenkins:
Rappelez-vous:
ssh -vvv [email protected]
(changement d'adresse en fonction de votre serveur git)Je voudrais ajouter que si vous avez créé les clés à la main, ils pourraient encore être détenue par vous et pas lisible par jenkins, essayez:
À vérifier sont les suivants:
Après toutes les vérifications -> essayez ssh -vvv [email protected]
Ne pas essayer de faire de config dans jenkins jusqu'à ce que ssh fonctionne!
Si vous exécutez jenkins comme un service windows, vous devez vérifier l'utilisateur qui exécute le service. Si vous avez créé les touches à l'aide de l'utilisateur "MACHINENAME\utilisateur", changer de service, de sorte que l'utilisateur actif, il peut correspondre à
Pour les utilisateurs de Mac, le problème peut être résolu en supprimant les clés existantes et de créer de nouvelles Clés Privées et Publiques en suivant ces étapes:
1.Supprimer tous les de clés Publiques et Privées situé à /Utilisateurs/Nom_utilisateur/.ssh
2.Supprimer toutes les informations d'identification enregistrées en vertu de la informations d'Identification onglet dans Jenkins.
3.Supprimer la clés Publiques SSH définis dans le Github Paramètres.
4.Créer de nouveaux clés SSH (privé et public: id_rsa et id_rsa.pub) en suivant les étapes de https://confluence.atlassian.com/bitbucketserver/creating-ssh-keys-776639788.html#CreatingSSHkeys-CreatinganSSHkeyonLinux&MacOSX
5.Définir le public nouvellement créé clé SSH (id_rsa.pub) dans Github ou un équivalent Paramètres du Référentiel.
6.Dans Jenkins,créer de nouveaux identifiants par l'ajout de la privé de clé SSH(id_rsa) pour votre Github nom d'utilisateur.
7.L'Erreur doit maintenant être retiré.
clés doivent généré à partir de jenkins de l'utilisateur.
une fois que la clé est généré, il devrait être ajouté comme clé ssh dans bitbucket ou github.