Docker 通过 ssh 登录总是要求输入密码

Docker 通过 ssh 登录总是要求输入密码

我尝试创建一个 Ubuntu 映像,其中包含一个“ubuntu”用户,该用户可以通过 ssh 登录容器而无需使用密码。当我尝试登录时,它会要求输入密码。

这是 Dockerfile

FROM     ubuntu:latest
ENV USER ubuntu
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN adduser --disabled-password --gecos "" $USER
RUN adduser $USER sudo
ADD authorized_keys /home/$USER/.ssh/authorized_keys
RUN chown $USER /home/$USER/.ssh/authorized_keys
EXPOSE 22
CMD    ["/usr/sbin/sshd", "-D"]

知道我做错了什么吗?

谢谢

答案1

未正确设置 authorized_keys 上的权限。此 Dockerfile 有效:

FROM     ubuntu:latest
ENV USER ubuntu
RUN apt-get update && apt-get install -y openssh-server
RUN mkdir /var/run/sshd
RUN adduser --disabled-password --gecos "" $USER
RUN adduser $USER sudo
ADD authorized_keys /home/$USER/.ssh/authorized_keys
RUN chown $USER /home/$USER/.ssh/authorized_keys
RUN chown -R $USER:$USER /home/$USER/.ssh/authorized_keys
RUN chmod 700 /home/$USER/.ssh/authorized_keys
EXPOSE 22
CMD    ["/usr/sbin/sshd", "-D"]

相关内容