权限被拒绝 docker localhost

时间:2021-03-09 08:36:28

标签: docker

我刚开始学习 docker... 我遇到了这个问题,从 dockerfile 构建图像,运行容器并尝试访问它! 所以当我尝试通过 ssh -p 12000 root@localhost 登录本地主机时, 即使我将 abcd 作为密码,它也一直说权限被拒绝

FROM ubuntu:20.04

RUN apt update && apt -y upgrade
RUN apt install -y openssh-server
RUN apt-get install -y gcc
RUN mkdir /var/run/sshd
RUN echo 'root:abcd' | chpasswd
RUN sed -i 's/#*PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
RUN sed -i 's@session\s*s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd

ENV NOTVISIBLE="in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

COPY hw.c /root

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]
WORKDIR /root
RUN gcc -o root hw.c

2 个答案:

答案 0 :(得分:1)

ssh 到容器的最佳方法是运行此命令(这是针对您的 ubuntu 容器)

docker exec -ti <container_id> bash

如果您没有设置修复名称,您可以让它运行 docker ps 的 container_id

然后你可以删除所有这些行

RUN mkdir /var/run/sshd
RUN echo 'root:abcd' | chpasswd
RUN sed -i 's/#*PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
RUN sed -i 's@session\s*s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g' /etc/pam.d/sshd

ENV NOTVISIBLE="in users profile"
RUN echo "export VISIBLE=now" >> /etc/profile

COPY hw.c /root

EXPOSE 22

CMD ["/usr/sbin/sshd", "-D"]

还请记住,您在容器上通过 ssh 执行的所有操作都将在容器被终止后丢失,因此最好将所有内容添加到 Dockerfile 中

答案 1 :(得分:0)

我通过删除所有剩余的容器来修复它!