Ich habe jenkins läuft auf master.com
und möchte einen Slave auf slave.com
laufen lassen. Um jedoch zum Slave zu gelangen, muss ich gateway.com
durchlaufen. Im Allgemeinen ssh zu diesem Rechner von meinem normalen Konto aus, verwende ich einfach ~ / .ssh / config, um einen ProxyCommand einzurichten.
Ich habe dieses Setup in meiner /var/lib/jenkins/.ssh/config
-Datei repliziert:
Ich habe die Authentifizierung mit öffentlichen Schlüsseln sowohl für das Gateway als auch für den Slave eingerichtet, so dass ich direkt von [email protected]
auf [email protected]
von der Befehlszeile aus zugreifen kann, indem ich einfach ssh slave.com
.
Leider scheint Jenkins mein .ssh / config-Setup nicht zu respektieren, und die Verbindung läuft ab (der Slave ist nicht direkt erreichbar). Die Jenkins-Slave-Protokolldatei lautet:
%Vor%Wie kann ich herausfinden, ob jenkins meine .ssh / config-Datei respektiert? Fehle ich einen Schritt bei der Konfiguration der Master Jenkins-Konto oder der .ssh / Config-Datei für Jenkins?
Anstatt Jenkins eingebaute SSH-Implementierung zu verwenden, verwenden Sie den Befehl "Slave durch Ausführen des Befehls auf dem Master starten". Sie können dann den regulären SSH-Befehl verwenden und% code% nutzen, wie Sie es gewohnt sind. Wenn Sie neben der Option auf die Schaltfläche .ssh/config
klicken, erhalten Sie alle erforderlichen Informationen.
Das Plugin jenkins-ssh-slaves verwendet das trilead SSH2-Implementierung in Java geschrieben.
~ / .ssh / config wird nur von OpenSSH gelesen und hat keinen Einfluss darauf, wie Jenkins eine Verbindung zu Ihren Slaves herstellt.