我正在使用OpenSSH她。我可以轻松地使用root@serverIP -p portNumber
进行ssh命令,但是每当我尝试通过像user@@serverIP -p portNumber
这样的docker容器用户ssh命令时,都会拒绝我的权限。
此外,当我选择使用我的用户而不是root来启动容器时,我还看到ssh服务没有启动。请帮我,我在这里想念什么?
我在下面提供了我的dockerfile:
P.S:我知道除了ssh外,我只能使用docker exec
,但在这里我有严格的条件才能使用ssh。谢谢。
FROM ubuntu:16.04
MAINTAINER Mahiuddin Al Kamal <mahiuddin_al.kamal@mailbox.tu-dresden.de>
RUN apt-get update
RUN apt-get upgrade -y
RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1000 ubuntu
RUN apt-get install -y openssh-server build-essential wget make python gcc sshpass vim-tiny
RUN sed -i 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
RUN wget -O mcperf.tar.gz https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/twemperf/mcperf-0.1.1.tar.gz
RUN mkdir mcperf && tar -xvf mcperf.tar.gz --strip-components=1 -C ./mcperf/
RUN cd /mcperf && ./configure && make && make install
RUN wget -O dude.tar.gz https://bitbucket.org/db7/dude/get/v3.1.tar.gz && mkdir dude && tar -xvf dude.tar.gz --strip-components=1 -C ./dude/
RUN cd /dude && python setup.py install
RUN mkdir /var/run/sshd
RUN echo 'root:screencast' | chpasswd
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
RUN sed -i 's/22/10023/' /etc/ssh/sshd_config
RUN apt-get -y install r-base
RUN echo 'screencast' > sshpass.txt && chmod 777 sshpass.txt
#sshpass -p screencast ssh -o StrictHostKeyChecking=no root@172.19.0.2
#sshpass -f sshpass.txt ssh root@172.19.0.2
RUN mkdir /home/ubuntu/a2p08
COPY Benchmark.py /home/ubuntu/a2p08/
COPY Dudefile /home/ubuntu/a2p08/
COPY graphs.R /home/ubuntu/a2p08/
COPY run.sh /home/ubuntu/a2p08/
WORKDIR /home/ubuntu/a2p08/
RUN chmod 777 *
USER ubuntu
EXPOSE 10023
CMD ["/usr/sbin/sshd", "-D"]
答案 0 :(得分:0)
我希望sshd服务以“ root”身份运行,因此请尝试删除
USER ubuntu
此外,要设置用户“ ubuntu”密码,
RUN echo 'ubuntu:ubuntu' | chpasswd
然后,您应该可以使用用户“ ubuntu”进行ssh
答案 1 :(得分:0)
尝试:
ssh docker@<docker machine ip>
。即ssh docker@192.168.99.100
password: tcuser