无法ssh到docker(ubuntu:19.04),因为happen权限被拒绝

bvk5enib  于 2024-01-06  发布在  Docker
关注(0)|答案(1)|浏览(239)

我从这个Dockerfile中创建了ssh服务停靠器。

  1. FROM ubuntu:19.04
  2. RUN apt-get update && apt-get install -y openssh-server \
  3. postgresql-client \
  4. language-pack-ja
  5. RUN update-locale LANG=ja_JP.UTF-8
  6. RUN mkdir /var/run/sshd
  7. ARG ROOT_PASSWORD
  8. RUN echo root:${ROOT_PASSWORD} | chpasswd
  9. RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
  10. # SSH login fix. Otherwise user is kicked off after login
  11. RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
  12. ENV NOTVISIBLE "in users profile"
  13. RUN echo "export VISIBLE=now" >> /etc/profile
  14. EXPOSE 22
  15. CMD ["/usr/sbin/sshd", "-D"]

字符串
我看了这一页。
https://docs.docker.com/engine/examples/running_ssh_service/
不同的是,只把ubuntu的图像版本改成了19.04。
然而,我不能ssh作为发生的权限denid。

  1. docker build --build-arg ROOT_PASSWORD=$ROOT_PASSWORD -t eg_sshd .
  2. docker run -d -P --name test_sshd eg_sshd
  3. docker port test_sshd 22
  4. 0.0.0.0:32770
  5. ssh root@localhost -p 32770
  6. root@localhost's password:
  7. Permission denied, please try again.


为什么会发生许可被拒绝的情况?

vql8enpb

vql8enpb1#

PermitRootLogin行在16.04的时候没有注解掉,但是在18.04的时候注解掉了,所以我把它设置为#\?,以适应两者。
它可以从下面的Dockerfile执行。

  1. FROM ubuntu:19.10
  2. RUN apt-get update && apt-get install -y openssh-server
  3. RUN mkdir /var/run/sshd
  4. RUN echo 'root:root' | chpasswd
  5. RUN sed -i 's/#\?PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
  6. # SSH login fix. Otherwise user is kicked off after login
  7. RUN sed 's@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' -i /etc/pam.d/sshd
  8. ENV NOTVISIBLE "in users profile"
  9. RUN echo "export VISIBLE=now" >> /etc/profile
  10. EXPOSE 22
  11. CMD ["/usr/sbin/sshd", "-D"]

字符串

展开查看全部

相关问题