Ich habe Hudson (Continuous Integration System) mit dem Git-Plugin, das auf einem Tomcat Windows-Dienst ausgeführt wird. msysgit ist installiert und das Verzeichnis msysgit bin befindet sich im Pfad. PuTTY / Pageant / Plink sind installiert und msysgit ist für deren Verwendung konfiguriert.
Ich denke, das Problem besteht darin, dass der Benutzer, dem der Tomcat / Hudson-Dienst (lokales System) gehört, keinen SSH-Schlüssel eingerichtet hat, um das Git-Repository klonen zu können. Wenn das Git Hudson Plugin versucht zu klonen, gibt es den Fehler:
$ 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
Meine Frage ist, wie kann ich die Dinge so einrichten, dass das Git-Plugin / msysgit weiß, dass es beim Klonen einen bestimmten privaten SSH-Schlüssel verwendet? Ich glaube nicht, dass Pageant funktioniert, da der Tomcat-Dienst als Benutzer "Lokales System" ausgeführt wird, aber ich kann mich irren.
BEARBEITEN:
Ich habe versucht, Pageant als Dienst einzurichten (mithilfe von runassvc.exe), den entsprechenden Schlüssel zu übergeben und ihn als "lokales System" ausführen zu lassen. Der andere Dienst scheint den Schlüssel des Festspieldienstes nicht sehen zu können.