Não é possível fazer ssh na minha instância do Docker do Jenkins

Não é possível fazer ssh na minha instância do Docker do Jenkins

Estou tentando usar o Jenkins Remote CLI para configurar meu servidor Jenkins remotamente. Estou executando um contêiner docker jenkinsci/blueocean.

Para ativar o SSHD no meu servidor Jenkins:

1) Emhttp://localhost:8080/configureSecurity/: Porta SSHD habilitada -> Aleatórioinsira a descrição da imagem aqui

2) NOhttp://localhost:8080/user/baymac/configure: Adicionada minha chave pública da máquina localinsira a descrição da imagem aqui

Depois de detectar a porta ssh usando este comando:

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

Tentando fazer ssh da máquina local:

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

Mensagem de erro:

ssh: conecte-se ao host localhost porta 46653: Conexão recusada

Tentando usar o cliente Jenkins CLI para fazer ssh no servidor Jenkins a partir da máquina local:

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

Recebo uma mensagem de erro:

Digite a senha para /home/parichay/.ssh/id_rsa: 24 de março de 2019 6:38:56 org.apache.sshd.client.config.hosts.ConfigFileHostEntryResolver reloadHostConfigEntries INFO: resolveEffectiveResolver(baymac@localhost:46653) carregou 1 entrada de /home/parichay/.ssh/config org.apache.sshd.common.RuntimeSshException: Falha ao obter a sessão. em org.apache.sshd.client.future.DefaultConnectFuture.getSession(DefaultConnectFuture.java:59) em hudson.cli.SSHCLI.sshConnection(SSHCLI.java:104) em hudson.cli.CLI._main(CLI.java:608 ) em hudson.cli.CLI.main (CLI.java:427) Causado por: java.net.ConnectException: Conexão recusada em sun.nio.ch.UnixAsynchronousSocketChannelImpl.checkConnect(Native Method) em sun.nio.ch.UnixAsynchronousSocketChannelImpl. finishConnect(UnixAsynchronousSocketChannelImpl.java:252) em sun.nio.ch.UnixAsynchronousSocketChannelImpl.finish(UnixAsynchronousSocketChannelImpl.java:198) em sun.nio.ch.UnixAsynchronousSocketChannelImpl.onEvent(UnixAsynchronousSocketChannelImpl.java:213) em sun.nio.ch.EPollPort $EventHandlerTask.run(EPollPort.java:293) em java.lang.Thread.run(Thread.java:748)

Eu insiro a senha correta, já que tentei fazer o ssh em outro dispositivo, ela está funcionando.

Informação extra:

Eu executo o docker com o seguinte comando:

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 

A autenticação HTTP funciona:

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

Mensagem:

Autenticado como: baymac Autoridades: autenticado

Dentro da linha de comando do docker container bash:

docker exec -ti jenkins bash

Comando 1:

bash-4.4# netstat -natp | grep sshd

Mensagem"

"SEM_SAÍDA"

Comando 2

bash-4.4# ps aux | grep sshd

Mensagem:

2280 raiz 0:00 grep sshd

Não consigo depurar isso. Um ponteiro para esse erro seria muito útil. Algumas sugestões me apontam para uma direção em que docker runo comando deve encaminhar a porta ssh. Não consigo entender como fazer isso, pois escolhi dentro do contêiner Jenkins para executar o servidor SSH em uma porta aleatória.

informação relacionada