Add ssh-base image

This commit is contained in:
Kirigaya Kazuto 2021-03-03 16:13:26 +08:00
parent 2eebb2ec6d
commit e506059858
2 changed files with 46 additions and 0 deletions

18
ssh-base/Dockerfile Normal file
View File

@ -0,0 +1,18 @@
FROM ubuntu-cn-systemd:latest
RUN apt update \
&& apt install openssh-server -y \
&& rm -rf /var/lib/apt/lists/* \
&& rm -f /run/nologin
# Default: No password login, No PAM
RUN sed -e 's/UsePAM yes/UsePAM no/g' -e 's/#PasswordAuthentication yes/PasswordAuthentication no/g' -i /etc/ssh/sshd_config
# Another method: Leave PAM on, but it needs a few more fixes.
# 1. PAM LoginUID fix. Otherwise user is kicked off after login.
# Or you might start container with --cap-add AUDIT_CONTROL
# RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
# 2. systemd-logind hang 25s fix
# RUN sed 's/ProtectHostname=yes/ProtectHostname=no/g' -i /lib/systemd/system/systemd-logind.service

28
ssh-base/Readme.md Normal file
View File

@ -0,0 +1,28 @@
# ssh-base
This is the base image of ssh server, bundled with systemd.
By default, `UsePAM` and `PasswordAuthentication` are both set to `no`.
The Dockerfile contains an alternative way to setup sshd, which could leave `UsePAM` set to `yes`.
The following fixes are included:
1. `/etc/pam.d/sshd` fix
`pam_loginuid.so` is set to optional, otherwise user will be kicked off after login.
https://stackoverflow.com/questions/28134239/how-to-ssh-into-docker
2. `/run/nologin` removed
Prevents ssh login from printing `System is booting up. Unprivileged users are not permitted to log in yet. Please come back later. For technical details, see pam_nologin(8).`
https://stackoverflow.com/questions/58682387/error-while-trying-to-ssh-a-docker-container-system-is-booting-up
3. `systemd-logind.service` fix
`ProtectHostname` is set to `no`. This fixes 25 second of hang up every login.
https://bugzilla.redhat.com/show_bug.cgi?id=1841139