Ssh

為什麼第一次會話結束時基於 Alpine 的 sshd 會關閉?

  • August 4, 2020

我有一個簡單的 Docker 容器,用於有目的 sshd的伺服器,其圖像源自alpine:latest. 它目前/usr/sbin/sshd -D -e -ddd用作其入口點。當我ssh進入它以遠端執行某個命令時,該命令可以正常執行,但隨後sshd容器立即關閉。

在其他地方session optional pam_loginuid.so,在啟用/etc/pam.d/sshd. 這聽起來很有希望,但 Alpine 的sshd(來自apk add openssh)顯然沒有 PAM,而且我不確定這將如何發揮作用。

有人可以告訴我如何sshd使基於 Alpine 的容器在許多 SSH 會話中持續存在以支持正常操作嗎?

更新sshd這是關閉之前的日誌輸出的最後幾行:

Received disconnect from 1.2.3.4 port 29213:11: disconnected by user
Disconnected from user rts 1.2.3.4 port 29213
debug1: do_cleanup
debug3: mm_request_receive entering
debug1: do_cleanup

由於 -d 標誌,您會看到這種行為。從 sshd 的手冊頁

-d ’ 調試模式。伺服器將詳細的調試輸出發送到系統日誌,並且不會將自己置於後台。伺服器也不會分叉,只會處理一個連接。此選項僅用於調試伺服器。多個 -d 選項可提高調試級別。最大值為 3。

引用自:https://serverfault.com/questions/1028799