Conectarse a máquinas virtuales Linux como usuario root


En este documento se describe cómo conectarse a instancias de máquinas virtuales (VMs) de Linux como usuario root, lo que permite tener privilegios de superusuario en la VM. De forma predeterminada, las VMs de Compute Engine creadas a partir de imágenes públicas y los sistemas operativos más comunes no permiten iniciar sesión como superusuario con una contraseña a través de SSH.

Una alternativa a conectarse a las VMs como usuario raíz es ejecutar comandos a través de sudo, que es lo que recomendamos en lugar de habilitar el inicio de sesión como administrador.

Sistemas operativos compatibles

Estos métodos de conexión se admiten en todas las imágenes públicas de Linux que están disponibles en Compute Engine. En el caso de las imágenes de Fedora CoreOS, debes configurar el acceso SSH antes de poder usar estos métodos.

Habilitar el inicio de sesión de root

De forma predeterminada, las VMs de Compute Engine definen el parámetro PermitRootLogin en prohibit-password o no en el archivo de configuración /etc/ssh/sshd_config de SSH. Habilita el inicio de sesión de root siguiendo las instrucciones de tu VM:

Máquinas virtuales con OS Login

Para habilitar el inicio de sesión de root, haz lo siguiente:

  1. Crea una clave SSH. Copia la clave SSH pública para más adelante.

  2. Conéctate a la VM como lo haces normalmente.

  3. Cambia PermitRootLogin no por PermitRootLogin prohibit-password en el archivo /etc/ssh/sshd_config ejecutando el siguiente comando:

    sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
    
  4. Crea el directorio /root/.ssh con el siguiente comando:

    sudo mkdir /root/.ssh
    
  5. Define los permisos en el directorio .ssh ejecutando el siguiente comando:

    sudo chmod 700 /root/.ssh
    
  6. Crea el archivo authorized_keys ejecutando el siguiente comando:

    sudo touch /root/.ssh/authorized_keys
    
  7. Define los permisos del archivo authorized_keys ejecutando el siguiente comando:

    sudo chmod 600 /root/.ssh/authorized_keys
    
  8. Pega la clave SSH pública en el archivo /root/.ssh/authorized_keys.

  9. Reinicia el daemon sshd reiniciando la máquina virtual o ejecutando el comando restart para el sistema operativo de tu máquina virtual. Espera a que se reinicie la VM y, a continuación, conéctate como usuario root.

Máquinas virtuales sin OS Login

Para habilitar el inicio de sesión de root, haz lo siguiente:

  1. Conéctate a la VM como lo haces normalmente.

  2. Cambia PermitRootLogin no por PermitRootLogin prohibit-password en el archivo /etc/ssh/sshd_config ejecutando el siguiente comando:

    sudo sed -i 's/PermitRootLogin no/PermitRootLogin prohibit-password/g' /etc/ssh/sshd_config
    
  3. Reinicia el daemon sshd reiniciando la máquina virtual o ejecutando el comando restart para el sistema operativo de tu máquina virtual. Espera a que se reinicie la VM y, a continuación, conéctate como usuario root.

Conectarse como usuario root

Después de habilitar el inicio de sesión de superusuario, conéctate a la VM como usuario root. Si te conectas a una VM que tiene habilitado OS Login, debes usar herramientas de terceros en lugar de la CLI de gcloud.

gcloud

Nota: Debes usar herramientas de terceros para conectarte como usuario raíz si la VM a la que te vas a conectar tiene habilitado el inicio de sesión del SO.

Conéctate a las VMs como usuario raíz mediante el comando gcloud compute ssh con root@ especificado antes del nombre de la VM:

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Conéctate a la VM ejecutando el siguiente comando:

    gcloud compute ssh \
        --project=PROJECT_ID \
        --zone=ZONE \
        root@VM_NAME
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto que contiene la VM
    • ZONE: el nombre de la zona en la que se encuentra la VM
    • VM_NAME: el nombre de la VM

    Herramientas de terceros

    Conéctate a las VMs como usuario raíz siguiendo las instrucciones correspondientes a tu VM:

Solución de problemas

Para consultar métodos para diagnosticar y resolver conexiones SSH fallidas, consulta Solución de problemas de SSH.

Siguientes pasos