SSH-Zugriff auf meine Jenkins-Docker-Instanz nicht möglich

SSH-Zugriff auf meine Jenkins-Docker-Instanz nicht möglich

Ich versuche, meinen Jenkins-Server remote mit der Jenkins Remote CLI zu konfigurieren. Ich verwende einen Docker-Container jenkinsci/blueocean.

So aktivieren Sie SSHD auf meinem Jenkins-Server:

1) Beihttp://localhost:8080/configureSecurity/: SSHD-Port aktiviert -> ZufälligBildbeschreibung hier eingeben

2) AThttp://localhost:8080/user/baymac/configure: Meinen öffentlichen Schlüssel des lokalen Rechners hinzugefügtBildbeschreibung hier eingeben

Nachdem Sie den SSH-Port mit diesem Befehl erkannt haben:

curl -D- -o/dev/nul -s http://localhost:8080 

Versuch einer SSH-Verbindung vom lokalen Rechner:

ssh -l baymac -p 46653 localhost who-am-i

Fehlermeldung:

ssh: Verbindung zum Host localhost Port 46653 herstellen: Verbindung abgelehnt

Versuch, den Jenkins CLI-Client zu verwenden, um vom lokalen Computer aus per SSH auf den Jenkins-Server zuzugreifen:

java -jar jenkins-cli.jar -s http://localhost:8080 -i ~/.ssh/id_rsa -ssh -user baymac who-am-i

Ich erhalte eine Fehlermeldung:

Geben Sie die Passphrase für /home/parichay/.ssh/id_rsa ein: 24. März 2019, 06:38:56 Uhr org.apache.sshd.client.config.hosts.ConfigFileHostEntryResolver reloadHostConfigEntries INFO: resolveEffectiveResolver(baymac@localhost:46653) hat 1 Eintrag aus /home/parichay/.ssh/config org.apache.sshd.common.RuntimeSshException geladen: Abrufen der Sitzung fehlgeschlagen. bei org.apache.sshd.client.future.DefaultConnectFuture.getSession(DefaultConnectFuture.java:59) bei hudson.cli.SSHCLI.sshConnection(SSHCLI.java:104) bei hudson.cli.CLI._main(CLI.java:608) bei hudson.cli.CLI.main(CLI.java:427) Verursacht durch: java.net.ConnectException: Verbindung abgelehnt bei sun.nio.ch.UnixAsynchronousSocketChannelImpl.checkConnect(Native Method) bei sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishConnect(UnixAsynchronousSocketChannelImpl.java:252) bei sun.nio.ch.UnixAsynchronousSocketChannelImpl.finish(UnixAsynchronousSocketChannelImpl.java:198) bei sun.nio.ch.UnixAsynchronousSocketChannelImpl.onEvent(UnixAsynchronousSocketChannelImpl.java:213) bei sun.nio.ch.EPollPort$EventHandlerTask.run(EPollPort.java:293) bei java.lang.Thread.run(Thread.java:748)

Ich gebe die richtige Passphrase ein, da ich versucht habe, mich per SSH mit einem anderen Gerät zu verbinden, funktioniert es.

Zusatzinformation:

Ich führe den Docker mit dem folgenden Befehl aus:

sudo docker run \ 
  --rm \ 
  -u root \ 
  -p 8080:8080 \ 
  -v jenkins-data:/var/jenkins_home \ 
  -v /var/run/docker.sock:/var/run/docker.sock \ 
  -v "$HOME":/home \ 
  --name jenkins \ 
  Jenkinsci/blueocean 

HTTP-Authentifizierung funktioniert:

java -jar jenkins-cli.jar -s http://localhost:8080/ -auth baymac:<api_token> who-am-i

Nachricht:

Authentifiziert als: baymac Behörden: authentifiziert

In der Bash-Befehlszeile des Docker-Containers:

docker exec -ti jenkins bash

Befehl 1:

bash-4.4# netstat -natp | grep sshd

Nachricht"

"KEINE LEISTUNG"

Befehl 2

bash-4.4# ps aux | grep sshd

Nachricht:

2280 root 0:00 grep sshd

Ich kann das nicht debuggen, ein Hinweis auf diesen Fehler wäre wirklich hilfreich. Einige Vorschläge weisen mich in eine Richtung, in der der docker runBefehl den SSH-Port weiterleiten soll. Ich verstehe nicht, wie das geht, da ich im Jenkins-Container ausgewählt habe, den SSH-Server auf einem zufälligen Port auszuführen.

verwandte Informationen