Почему я получаю `$` в приглашении вместо `user@hostname: ~ $` при SSHing в docker containe r? Я вошел в систему как использую r? - proUbuntu
0 голосов
/ 18 августа 2020

Я пытаюсь ввести s sh в свой Ubuntu docker контейнер r. Но когда я пытаюсь, он входит не в мое использование r, а в какой-то терминал DOS.

terminal when I ssh into container

But when I use bash command, it will give me a bash terminal with my user as usual.

После r давая bash команду

Ниже приведен мой Dockerfile fo r Ubuntu containe r

FROM ubuntu:18.04
RUN apt update
RUN apt-get -y install mysql-client
RUN DEBIAN_FRONTEND=noninteractive apt -y install awscli --upgrade
RUN apt-get -y install openssh-server
RUN mkdir /var/run/sshd
RUN useradd remote_user && \
    echo "remote_user:password" | chpasswd && \
    mkdir /home/remote_user/.ssh -p && \
    chmod 700 /home/remote_user/.ssh && \
    mkdir -p -m0755 /var/run/sshdh   
COPY remote-key.pub /home/remote_user/.ssh/authorized_keys
RUN chown remote_user:remote_user   -R /home/remote_user && \
    chmod 400 /home/remote_user/.ssh/authorized_keys
RUN ssh-keygen -A
EXPOSE 22
RUN rm -rf /run/nologin
CMD /usr/sbin/sshd -D

Как я могу использовать sh в моем контейнере r для использования r (здесь remote_use r)?

1 Ответ

0 голосов
/ 18 августа 2020

Когда вы вводите S SH в свой ящик r, создается оболочка. Какая это оболочка, определяется в файле /etc/passwd в вашем образе r Docker. Я подозреваю, что в нем перечислены /bin/sh, а не /bin/bash.

You r Dockerfile перечисляет команду для создания нового использования r в вашем образе r. Это команда useradd, и это команда, которая изменит r /etc/passwd внутри вас r Docker изображение. Попробуйте использовать useradd --shell /bin/bash remote_user вместо useradd remote_user. Затем перестройте свой образ r Docker и создайте новый контейнер r из этого образа.

...