gpt4 book ai didi

docker - 由于发生权限被拒绝,无法 ssh 到 docker(ubuntu :19. 04)

转载 作者:行者123 更新时间:2023-12-04 19:09:19 27 4
gpt4 key购买 nike

我从这个 Dockerfile 制作了 ssh 服务 docker。

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 发生许可被拒绝。
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.

为什么会发生权限被拒绝?

最佳答案

PermitRootLogin 行在 16.04 时没有注释掉,但是在 18.04 时注释掉了,所以我将它设置为 #\?为了兼顾两者。

它可以从以下 Dockerfile 执行。

FROM ubuntu:19.10

RUN apt-get update && apt-get install -y openssh-server

RUN mkdir /var/run/sshd

RUN echo 'root:root' | 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"]

关于docker - 由于发生权限被拒绝,无法 ssh 到 docker(ubuntu :19. 04),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60833261/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com