У меня есть простой контейнер Docker для целеустремленный sshd
сервер, образ которого происходит от alpine:latest
. В настоящее время он использует /usr/sbin/sshd -D -e -ddd
в качестве точки входа. Когда я ssh
в него для удаленного выполнения определенной команды, эта команда выполняется нормально, но затем sshd
и, следовательно, контейнер немедленно отключился.
В другом месте есть рекомендация под названием «Исправление входа по SSH. В противном случае пользователь будет отключен после входа в систему» с точки зрения включения 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.