我从这个Dockerfile中创建了ssh服务停靠器。
FROM ubuntu:19.04
RUN apt-get update && apt-get install -y openssh-server \
postgresql-client \
language-pack-ja
RUN update-locale LANG=ja_JP.UTF-8
RUN mkdir /var/run/sshd
ARG ROOT_PASSWORD
RUN echo root:${ROOT_PASSWORD} | chpasswd
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
# SSH login fix. Otherwise user is kicked off after login
RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
ENV NOTVISIBLE "in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile
EXPOSE 22
CMD ["/usr/sbin/sshd", "-D"]
字符串
我看了这一页。
https://docs.docker.com/engine/examples/running_ssh_service/
不同的是,只把ubuntu的图像版本改成了19.04。
然而,我不能ssh作为发生的权限denid。
docker build --build-arg ROOT_PASSWORD=$ROOT_PASSWORD -t eg_sshd .
docker run -d -P --name test_sshd eg_sshd
docker port test_sshd 22
0.0.0.0:32770
ssh root@localhost -p 32770
root@localhost's password:
Permission denied, please try again.
型
为什么会发生许可被拒绝的情况?
1条答案
按热度按时间vql8enpb1#
PermitRootLogin行在16.04的时候没有注解掉,但是在18.04的时候注解掉了,所以我把它设置为
#\?
,以适应两者。它可以从下面的Dockerfile执行。
字符串