Назад | Перейти на главную страницу

Почему sshd на базе Alpine отключается после завершения первого сеанса?

У меня есть простой контейнер 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.