Я запускаю Dockerfile
FROM php:7.4-cli
RUN apt-get update && apt-get install -y openssh-server
# add default public key to authorized_keys
#COPY ./ssh/insecure_id_rsa.pub /root/insecure_id_rsa.pub
#RUN mkdir -p /root/.ssh \
# && cat /root/insecure_id_rsa.pub >> /root/.ssh/authorized_keys \
# && rm -rf /root/insecure_id_rsa.pub \
#;
RUN mkdir /var/run/sshd
RUN echo 'root:passforroot' | 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
# @see https://docs.docker.com/engine/examples/running_ssh_service/
CMD ["/usr/sbin/sshd", "-D"]
Через docker -компонентный файл
version: "3.7"
services:
deploy:
build:
context: ./docker-compose/deploy
container_name: backend-laravel-deploy
restart: unless-stopped
working_dir: /var/www/
ports:
- "2222:22"
# reserve a tty - otherwise the container shuts down immediately
# corresponds to the "-i" flag
tty: true
volumes:
- ./:/var/www
networks:
- backend-laravel
$ docker-compose build deploy
$ docker-compose up -d deploy
Если я раскомментирую строки, касающиеся клавиш s sh, я могу войдите в контейнер через S SH как root (без пароля, конечно) с ними.
Но я бы использовал пароль, поэтому я попробовал другой метод (основан на официальном руководстве по docker site), но когда я пытаюсь подключиться к ssh root@localhost -p 2222
, требуется пароль, который не записан в Dockerfile.
Как я могу изменить root пароль для этого Dockerfile?