git clone/ssh unter jenkins
Ich bin mit stash als git-repository-manager. stash ermöglicht das hinzufügen von ssh-Schlüssel für jeden Benutzer, der versucht, sich zu verbinden und Klonen von ihm. Ich so konfiguriert haben, dass es gut für alle unix-Benutzer, aber windows gibt mir harte Zeiten. das git-clone-Prozess auf dem windows-slave-Maschine (2008 R2 server) hängt ewig her, dass es wahrscheinlich nicht finden .ssh-Verzeichnis, in dem die Schlüssel aufbewahrt werden. beim ausführen des gleichen Befehls manuell von der Kommandozeile, funktioniert es einwandfrei.
Ich habe versucht, alle möglichen Konfigurationen, spielte mit %HOME% env-variable,etc. es funktioniert einfach nicht für mich. verbrachte mehr als einen Tag an diesem Problem, aber nichts funktionierte.
jede Hilfe ist willkommen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf der client-Seite (Jenkins), die Sie brauchen, um zu überprüfen, ob der Benutzer mit der Jenkins-Jobs kennt eine
%HOME%
Umgebungsvariable: es braucht seine %HOME%.ssh\id_rsa.pub öffentlichen ssh-Schlüssel dort ein.Siehe "Jenkins - Git - Permission denied (publickey)"
Auf dem server (Stash von Atlassian), die Sie benötigen, um sicherzustellen, dass die
~stachAadminAccount\.ssh\authorized_keys
enthält Ihren öffentlichen Schlüssel.Neben die, die Sie brauchen, um das Debuggen der ssh-Verbindung:
(ersetzt
git
durch das Konto für die Verwaltung Stash, und ersetzenstash.atlassian.com:7999
durch Ihreserver:port
)Es benötigt wird: ssh-look für Schlüssel (private und public) unter
%HOME%/.ssh
a/"nicht Teil der
/etc/password
Datei": Sicher, dass diejenigen, die nicht registriert sind in /etc/password: wir sprechen hier nicht über Benutzer-Konto hier, aber über ssh-keys, so dass der Benutzer öffnen Sie eine secure shell-Sitzung wie eine eindeutige Benutzer-account (der stash admin-Konto): alle ssh-Befehle ausgeführt werden, die unter der gleichen Konto.b/"keine
authorized_keys
Datei": natürlich sollte es vorhanden ist: wenn Sie berichten, dass ein Klon mit ssh-Protokoll arbeitet, es geht um eine Reine ssh-Kommunikation, die bedeutet suchen, den öffentlichen Schlüssel auf die server-Seite in einer~/.ssh/authorized_keys
.Der einzige Weg, dass die Datei nicht vorhanden ist, wenn Stash starten Sie Ihre eigene ssh-daemon so konfiguriert look für Schlüssel in einer anderen Datei/Quelle der öffentlichen Schlüssel.
Das kann sein, aber Stash soll einfach ein nettes Frontend für ssh. Alle ssh-Mechanismus dahinter sollte noch aktualisiert werden.
Müssen Sie definieren, ein Jenkins-job die nicht die
ssh -vvvT
als alleinigen Befehl: auf diese Weise, würden Sie sehen, was nicht funktioniert von den Jenkins-Perspektive.Unter windows, ein process explorer ist zumindest ein Erster Schritt, um zu sehen, unter welchem account und mit welchem environment-variable ist die Jenkins-Verfahren (und deren Arbeitsplätze) ausgeführt werden.
known_hosts
- Datei: github.com/VonC/compileEverything/blob/master/openssh/...), ein bisschen wie in gablog.eu/online/node/35