Acoplable: no se puede establecer una contraseña para el usuario root (acceso SSH)

sineverba:

Tengo un 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"]

A través de una ventana acoplable de composición del archivo

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

Si descomentar las líneas con respecto a las claves ssh, puedo iniciar sesión en el recipiente a través de SSH como root (sin contraseña, por supuesto) con ellos.

Sin embargo, me gustaría utilizar una contraseña, así que probé el otro método (basado en la guía oficial en el sitio ventana acoplable) pero cuando intento conectar a ssh root@localhost -p 2222que requiere la contraseña que no se que escribió en Dockerfile.

¿Cómo puedo cambiar la contraseña de root para que Dockerfile?

Adam Barreiro:

Con docker exec -it <container ID> bashse puede explorar el contenido del recipiente, por si acaso algo está mal. Hasta el momento, pude ver lo siguiente:

root@d52693a8ea0c:/etc/ssh# grep "PermitRoot" sshd_config
#PermitRootLogin yes
# the setting of "PermitRootLogin without-password".

Parece la bandera PermitRootLogin se comenta con #. He quitado también el hashtag en ese archivo a través de comandos de la Dockerfile sed que tiene:

RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config

Y después de la reconstrucción y en funcionamiento que pudiera iniciar sesión con la contraseña en el Dockerfile.

¡Espero que esto ayude!

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=399406&siteId=1
Recomendado
Clasificación