# 使用官方openssh-server镜像
docker run -d -p 2222:22 --name sshd_container rastasheep/ubuntu-sshd:18.04
# 基于Ubuntu的Dockerfile示例
FROM ubuntu:latest
RUN apt-get update && \
apt-get install -y openssh-server && \
mkdir /var/run/sshd
# 设置root密码为"password"(仅测试环境使用)
RUN echo 'root:password' | chpasswd
# 允许root登录(仅测试环境使用)
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH登录修复
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
构建并运行:
docker build -t my_ssh .
docker run -d -p 2222:22 --name ssh_container my_ssh
FROM alpine:latest
RUN apk add --no-cache openssh && \
ssh-keygen -A && \
echo "root:password" | chpasswd
# 允许root登录(仅测试环境使用)
RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
ssh root@localhost -p 2222
# 密码为"password"(如上述示例设置)
ps aux | grep sshd
)docker ps
查看映射)docker logs <container_id>
希望这些解决方案能帮助您成功在Docker中配置SSH服务。如需进一步帮助,请提供具体的错误信息。