2014-02-25 12 views
8

mit habe ich jenkins auf master.com läuft, und will einen Slave auf slave.com ausgeführt haben. Um jedoch zum Slave zu kommen, muss ich gateway.com durchlaufen. Im Allgemeinen verwende ich ~/.ssh/config, um einen ProxyCommand einzurichten.Jenkins Slave einen SSH-Gateway

Host slave.com 
User felix 
ProxyCommand ssh [email protected] nc %h %p 

Ich habe Authentifizierung über öffentliche Schlüssel sowohl für das Gateway und Slave, so eingerichtet, dass ich von der Kommandozeile direkt [email protected]-[email protected] ssh kann:

Ich habe dieses Setup in meiner /var/lib/jenkins/.ssh/config Datei repliziert einfach indem Sie ssh slave.com tun.

Leider Jenkins scheint nicht meinen .ssh/config-Setup zu respektieren, und die Verbindung unterbrochen wird (der Slave ist nicht direkt erreichbar). Die Jenkins Slave-Protokolldatei ist:

java.io.IOException: There was a problem while connecting to slave.com:22 
.... 
Caused by: java.net.ConnectException: Connection timed out 

Wie kann ich herausfinden, ob oder ob nicht jenkins meine .ssh/config-Datei zu respektieren? Fehle ich einen Schritt bei der Konfiguration des Master-Jenkins-Accounts oder der .ssh/config-Datei für Jenkins?

+2

Ich stieß auf das gleiche Problem. Hast du ein Update @Felix? –

+0

Leider nicht; Mein "Workaround" war, eine Slave-Maschine außerhalb des Gateways einzurichten. – Felix

Antwort

8

Verwenden Sie anstelle von Jenkins integrierter SSH-Implementierung den Befehl "Slave durch Ausführen des Befehls auf dem Master starten". Sie können dann den regulären SSH-Befehl verwenden und .ssh/config wie gewohnt nutzen. Wenn Sie neben der Option auf die Schaltfläche ? klicken, erhalten Sie alle erforderlichen Informationen.

+0

Danke! Leider kann ich das nicht testen, da ich keinen Zugriff mehr auf diese Maschinen habe, aber ich werde dies als akzeptierte Antwort bezeichnen. – Felix

Verwandte Themen