无法通过 ssh 进入我的 Jenkins Docker 实例

无法通过 ssh 进入我的 Jenkins Docker 实例

我正在尝试使用 Jenkins Remote CLI 远程配置我的 Jenkins 服务器。我正在运行 jenkinsci/blueocean docker 容器。

要在我的 jenkins 服务器上启用 SSHD:

1)在http://localhost:8080/configureSecurity/:启用 SSHD 端口 -> 随机在此处输入图片描述

2)AThttp://localhost:8080/用户/baymac/configure:添加了我的本地机器的公钥在此处输入图片描述

使用此命令检测 ssh 端口后:

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

尝试从本地机器进行 ssh:

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

错误信息:

ssh:连接到主机本地主机端口 46653:连接被拒绝

尝试使用 Jenkins CLI 客户端从本地机器通过 ssh 进入 Jenkins 服务器:

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

我收到一条错误消息:

输入 /home/parichay/.ssh/id_rsa 的密码:2019 年 3 月 24 日上午 6:38:56 org.apache.sshd.client.config.hosts.ConfigFileHostEntryResolver reloadHostConfigEntries 信息:resolveEffectiveResolver(baymac@localhost:46653)从 /home/parichay/.ssh/config org.apache.sshd.common.RuntimeSshException 加载了 1 个条目:无法获取会话。在 org.apache.sshd.client.future.DefaultConnectFuture.getSession(DefaultConnectFuture.java:59) 在 hudson.cli.SSHCLI.sshConnection(SSHCLI.java:104) 在 hudson.cli.CLI._main(CLI.java:608) 在 hudson.cli.CLI.main(CLI.java:427) 导致:java.net.ConnectException:连接被拒绝 在 sun.nio.ch.UnixAsynchronousSocketChannelImpl.checkConnect(Native Method) 在 sun.nio.ch.UnixAsynchronousSocketChannelImpl.finishConnect(UnixAsynchronousSocketChannelImpl.java:252) 在 sun.nio.ch.UnixAsynchronousSocketChannelImpl.finish(UnixAsynchronousSocketChannelImpl.java:198) sun.nio.ch.UnixAsynchronousSocketChannelImpl.onEvent(UnixAsynchronousSocketChannelImpl.java:213) 在 sun.nio.ch.EPollPort$EventHandlerTask.run(EPollPort.java:293) 在 java.lang.Thread.run(Thread.java:748)

我输入了正确的密码,因为我尝试通过 ssh 进入另一台设备,所以它正常工作。

额外的信息:

我使用以下命令运行docker:

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 身份验证的工作原理:

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

信息:

已验证为:baymac 授权机构:已验证

在 docker 容器 bash 命令行中:

docker exec -ti jenkins bash

命令 1:

bash-4.4# netstat -natp | grep sshd

信息”

“无输出”

命令 2

bash-4.4# ps aux | grep sshd

信息:

2280 根 0:00 grep sshd

我无法调试这个,指向这个错误的指针会非常有帮助。一些建议指出docker run命令应该转发 ssh 端口的方向。我无法理解如何做到这一点,因为我选择在 Jenkins 容器内随机端口上运行 SSH 服务器。

相关内容