2011-10-25 8 views
3

J'ai un dépôt GIT sur bitbucket, auquel je veux que mon serveur Jenkins accède automatiquement. Cela est uniquement possible en utilisant l'authentification par clé publique/privée. J'ai donc créé une paire de clés et téléchargé la clé publique sur bitbucket. Les clés publique et privée sont sur mon serveur dans le dossier .ssh de l'utilisateur tomcat exécutant jenkins. Je suis capable de cloner mon projet lorsque je suis connecté en tant qu'utilisateur sur le serveur.Comment se connecter au dépôt git bitbucket depuis jenkins

Cependant, je ne parviens pas à faire en sorte que jenkins extrait réellement le code de bitbucket. Il dit toujours:

Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

Eh bien, je suppose que cela se produit parce que lorsque vous accédez au dépôt sur ssh-je fournir le mot de passe pour ma clé privée et jenkins est incapable de le faire automatiquement. Je lis qu'il est possible d'éviter beeing demandé le mot de passe en fournissant un fichier de configuration dans le dossier .ssh contenant le contenu suivant:

Host bitbucket.org 
    IdentityFile ~/.ssh/id_dsa 

je l'ai fait, mais dès que je fournis ce fichier je ne peux pas cloner plus longtemps le dépôt de bitbucket. Pas même directement à partir du serveur, en recevant le même message d'erreur comme indiqué ci-dessus.

Est-ce que quelqu'un a réussi à faire fonctionner cette configuration? J'ai aussi lu le fil suivant ici sur stackoverflow qui ne m'était d'aucune utilité: How do i set a private ssh key for hudson/jenkins to access bitbucket? et j'ai vérifié que tomcat fonctionne vraiment sous l'utilisateur tomcat6 en créant un projet de test vide qui exécute simplement "whoami". Donc, je suis à peu près hors des idées pour résoudre le problème.

Répondre

4

La spécification d'un fichier IdentityFile dans votre configuration ne change pas si vous devez fournir un mot de passe pour la clé ssh. Ce serait un trou de sécurité béant si c'était le cas. La seule façon de ne pas être obligé de fournir un mot de passe pour votre clé ssh est si votre clé ssh n'a pas de mot de passe. Donc, vous devriez créer une clé ssh spécifiquement pour votre instance de jenkins et, si Bitbucket le permet, donner seulement un accès en lecture seule à votre dépôt pour cette clé.

+0

Merci pour l'aide. Cela a vraiment résolu le problème. – ali

+0

@ali, Bien que, si jenkins n'a besoin que d'un accès en lecture seule, n'y a-t-il pas d'autres moyens d'accéder à votre dépôt que d'utiliser ssh? – jamessan

+0

non. Le plugin jenkins git ne fournit pas d'autres moyens. – ali

Questions connexes