Comment spécifier une key SSH pour Hudson avec un plugin git?

J'ai Hudson (système d'continuous integration) avec le plugin git exécuté sur un service Tomcat Windows. msysgit est installé et le msysgit bin dir se trouve sur le path. PuTTY / Pageant / plink sont installés et msysgit est configuré pour les utiliser.

Le problème pour lequel je me dirige, je pense, c'est que l'user qui possède le service Tomcat / Hudson (système local) n'a pas de key SSH configurée pour pouvoir cloner le repository git. Lorsque le plugin Hudson git essaye de cloner, il donne l'erreur:

$ git clone -o origin git@hostname:project.git "e:\HUDSON_HOME\jobs\Project Trunk\workspace" ERROR: Error cloning remote repo 'origin' : Could not clone git@hostname:project.git ERROR: Cause: Error performing git clone -o origin git@hostname:project.git e:\HUDSON_HOME\jobs\Project Trunk\workspace Trying next repository ERROR: Could not clone from a repository FATAL: Could not clone hudson.plugins.git.GitException: Could not clone 

Ma question est de savoir comment configurer les choses afin que le plugin git / msysgit sache utiliser une key privée SSH particulière lors de la tentative de clone? Je ne pense pas que Pageant fonctionnera car le service Tomcat s'exécute en tant qu'user "Système local", mais je me trompe peut-être.

MODIFIER:

J'ai essayé de configurer Pageant en tant que service (using runassvc.exe), en passant la touche appropriée et en la faisant fonctionner comme "Système local". L'autre service ne semble pas pouvoir voir la key du service du concours.

Vous devriez certainement pouvoir l'exécuter sous un user non-système. Choisissez / créez un user pour exécuter Hudson puis essayez de vous connecter au server en utilisant ssh user @ host. Si elle request un mot de passe, il ne vous trouve pas la key évidemment.

Dans ce cas, vérifiez que la key est chargée dans le concours (vous devez get un concours pour charger la key concernée à partir du disque chaque fois qu'elle démarre) et que la variable d'environnement GIT_SSH est définie.

Une autre façon de le faire est de définir votre variable d'environnement GIT_SSH pour inclure une reference à la key. Je le fais actuellement avec tunnelier et SV, donc, par exemple, ma variable SVN_SSH est "sexec -pk = 1" où sexec est la CLI ssh de tunnelier et -pk = 1 lui dit d'utiliser ma key privée dans la fente 1.

Vous pouvez le faire en utilisant les keys openssh au lieu d'utiliser le mastic; Putty a le défi d'avoir besoin de concours en cours d'exécution, mais avec une key openssh vous avez juste besoin de la key id_rsa pour être dans ~ / .ssh

La façon dont je ferais normalement cela est de configurer Jenkins pour fonctionner comme un nouvel user que je crée. Je vais au directory personnel de l'user (C: \ Users \ par défaut sur Windows Vista et plus tard) et créez un directory .ssh où je place un file id_rsa avec la key privée que je souhaite utiliser au format openssh.

Je devais juste find un tour similaire sur Mac: http://colonelpanic.net/2011/06/jenkins-on-mac-os-x-git-w-ssh-public-key/