無法 ssh 進入我的 Jenkins docker 實例

無法 ssh 進入我的 Jenkins docker 實例

我正在嘗試使用 Jenkins 遠端 CLI 遠端設定我的 Jenkins 伺服器。我正在運行 jenkinsci/blueocean docker 容器。

要在我的 jenkins 伺服器上啟用 SSHD:

1) 在http://localhost:8080/configureSecurity/:啟用 SSHD 連接埠 -> 隨機在此輸入影像描述

2)自動http://localhost:8080/user/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 資訊:resolveEffigFileHostEntryResolver reloadHostConfigEntries 資訊:resolveEffectiveResolver(4663) 已載入1 個條目來自 /home/parichay/.ssh/config org.apache.sshd.common.RuntimeSshException:無法取得會話。在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(本機方法)在sun.nio.ch.UnixAsynchronousSocketChannelImChannel(本機方法)被拒絕。 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 伺服器。

相關內容