Docker sshd 镜像
Ubuntu 26.04 基础镜像:
FROM ubuntu:26.04
ARG USERNAME=ubuntu
ENV TZ=Asia/Shanghai
USER root
RUN apt-get update && apt-get install -y \
openssh-server sudo locales tzdata \
&& locale-gen en_US.UTF-8 \
&& ln -snf /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN usermod -l ${USERNAME} ubuntu \
&& groupmod -n ${USERNAME} ubuntu \
&& usermod -d /home/${USERNAME} -m ${USERNAME}
RUN echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/${USERNAME} \
&& chmod 0440 /etc/sudoers.d/${USERNAME}
RUN echo '${USERNAME}:${USERNAME}' | chpasswd \
&& mkdir /var/run/sshd || true \
&& sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config \
&& ssh-keygen -A
USER ${USERNAME}
WORKDIR /home/${USERNAME}
RUN mkdir -p /home/${USERNAME}/.ssh && chmod 700 /home/${USERNAME}/.ssh
COPY --chown=${USERNAME}:${USERNAME} authorized_keys /home/${USERNAME}/.ssh/authorized_keys
RUN chmod 600 /home/${USERNAME}/.ssh/authorized_keys
ENTRYPOINT ["/bin/bash", "-c"]
CMD ["sudo /usr/sbin/sshd -D"]
EXPOSE 22