Configura el Escritorio remoto de Chrome para Linux en Compute Engine

Last reviewed 2022-11-16 UTC

En este instructivo, se muestra cómo configurar el servicio de Escritorio remoto de Chrome en una instancia de máquina virtual (VM) de Debian Linux en Compute Engine. Si deseas obtener instrucciones independientes para las VMs de Windows, consulta Máquinas virtuales de Windows. El Escritorio remoto de Chrome te permite acceder de forma remota a las aplicaciones con una interfaz gráfica de usuario desde una computadora local o un dispositivo móvil.

Cuando sigues este instructivo, las reglas de firewall predeterminadas permiten conexiones de Escritorio remoto de Chrome; no necesitas configurar ninguna regla de firewall adicional. El acceso SSH solo se requiere para la configuración inicial.

La VM necesita acceso a Internet (ya sea con una dirección IP externa o a través de Cloud NAT), y debes usar tu Cuenta de Google para la autenticación y autorización.

En este instructivo, se supone que estás familiarizado con la línea de comandos de Linux y con la instalación de paquetes de Debian.

Si deseas obtener información sobre otras opciones para la creación de estaciones de trabajo virtuales, consulta Crea una estación de trabajo virtual.

Objetivos

  • Crear una instancia de VM de Compute Engine sin interfaz gráfica para ejecutar el Escritorio remoto de Chrome en ella
  • Instalar y configurar el servicio de Escritorio remoto de Chrome en la instancia de VM
  • Configurar un entorno de escritorio de sistema de ventanas X en la instancia de VM
  • Conectarte desde tu computadora local al entorno del escritorio en la instancia de VM

Costos

En este instructivo, se usan componentes facturables de Google Cloud, que incluyen los siguientes:

  • Compute Engine

Usa la Calculadora de precios para generar una estimación de los costos, según el uso previsto.

Antes de empezar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Compute Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Compute Engine API.

    Enable the API

  8. Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

  9. Make sure that you have the following role or roles on the project: roles/compute.admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Ir a IAM
    2. Selecciona el proyecto.
    3. Haz clic en Grant access.
    4. En el campo Principales nuevas, ingresa tu identificador de usuario. Esta suele ser la dirección de correo electrónico de una Cuenta de Google.

    5. En la lista Seleccionar un rol, elige un rol.
    6. Para otorgar funciones adicionales, haz clic en Agregar otro rol y agrega cada rol adicional.
    7. Haz clic en Guardar.
    8. Usa el navegador Google Chrome en tu máquina local.

Crea una instancia de Compute Engine

Para los fines de este instructivo, se usa el tipo de máquina predeterminado con un disco de arranque de Debian Linux. Si usas esto para tu propio entorno, te recomendamos cambiar el tipo de máquina, el nombre, la región, el tamaño del disco de arranque o alguna otra configuración.

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a Instancias de VM

  2. Haz clic en Crear.

  3. Configura el nombre de la instancia como crdhost.

  4. Haz clic en Crear.

    La creación de la instancia toma unos minutos.

  5. Después de crear la instancia nueva, haz clic en el botón SSH de la lista de instancias para conectarte a ella:

    Creación de una conexión SSH a la instancia de VM.

Instala el Escritorio remoto de Chrome en la instancia de VM

  1. En la ventana de SSH de la instancia de VM, agrega el repositorio del Escritorio remoto de Chrome para Debian Linux a tu lista de paquetes apt y, luego, instala el paquete chrome-remote-desktop.

    curl https://dl.google.com/linux/linux_signing_key.pub \
        | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/chrome-remote-desktop.gpg
    echo "deb [arch=amd64] https://dl.google.com/linux/chrome-remote-desktop/deb stable main" \
        | sudo tee /etc/apt/sources.list.d/chrome-remote-desktop.list
    sudo apt-get update
    sudo DEBIAN_FRONTEND=noninteractive \
        apt-get install --assume-yes chrome-remote-desktop
    

    A través del parámetro DEBIAN_FRONTEND=noninteractive, se suprime una ventana de solicitud de configuración de un diseño para un teclado que se conectará de manera directa a la instancia de VM.

Instala un entorno de escritorio del sistema de ventanas X

Debes instalar un entorno del escritorio del sistema de ventanas X y un administrador de ventanas para que lo use el Escritorio remoto de Chrome. Las siguientes son las opciones comunes:

Puedes usar otros entornos de escritorio, pero el Escritorio remoto de Chrome no admite la aceleración de gráficos 3D. Si eliges un entorno de escritorio que use la aceleración de gráficos 3D, debes inhabilitar esta función o el servicio de escritorio remoto no se iniciará.

Para conexiones remotas en redes más lentas, recomendamos Xfce debido a que tiene elementos gráficos mínimos y pocas animaciones.

Xfce

  1. En la ventana de SSH conectada a tu instancia de VM, instala el entorno del escritorio de Xfce y los componentes básicos de escritorio:

    sudo DEBIAN_FRONTEND=noninteractive \
        apt install --assume-yes xfce4 desktop-base dbus-x11 xscreensaver
    

    Se requiere XScreenSaver porque el bloqueador de pantalla predeterminado (Light Locker) de Xfce no funciona con el Escritorio remoto de Chrome (Light Locker muestra una pantalla en blanco que no se puede desbloquear).

  2. Configura el Escritorio remoto de Chrome para que use Xfce de forma predeterminada:

    sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > /etc/chrome-remote-desktop-session'
    
  3. Debido a que no hay una pantalla conectada a tu instancia, inhabilita el servicio del administrador de pantallas en tu instancia:

    sudo systemctl disable lightdm.service
    
  4. De forma opcional, instala el kit completo de aplicaciones de escritorio de Linux, en el que se incluyen el navegador Firefox, el paquete de aplicaciones para oficinas de LibreOffice y el visor de PDF Evince:

    sudo apt install --assume-yes task-xfce-desktop
    
  5. De forma opcional, instala el navegador Chrome en tu instancia:

    curl -L -o google-chrome-stable_current_amd64.deb \
    https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo apt install --assume-yes --fix-broken ./google-chrome-stable_current_amd64.deb
    

Cinnamon

  1. En la ventana de SSH conectada a tu instancia de VM, instala el entorno del escritorio de Cinnamon y los componentes básicos de escritorio:

    sudo DEBIAN_FRONTEND=noninteractive \
        apt install --assume-yes cinnamon-core desktop-base dbus-x11
    
  2. Configura la sesión del Escritorio remoto de Chrome para que, de forma predeterminada, use Cinnamon en el modo 2D (en el que no se usa la aceleración de gráficos 3D):

    sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/cinnamon-session-cinnamon2d" > /etc/chrome-remote-desktop-session'
    
  3. De forma opcional, instala el kit completo de aplicaciones de escritorio de Linux, en el que se incluyen el navegador Firefox, el paquete de aplicaciones para oficinas de LibreOffice y el visor de PDF de Evince:

    sudo apt install --assume-yes task-cinnamon-desktop
    
  4. De forma opcional, instala el navegador Chrome en tu instancia:

    curl -L -o google-chrome-stable_current_amd64.deb \
    https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo apt install --assume-yes --fix-broken ./google-chrome-stable_current_amd64.deb
    

Gnome

  1. En la ventana de SSH conectada a tu instancia de VM, instala el entorno de escritorio completo de Gnome, incluido el navegador Firefox, el paquete de aplicaciones para oficinas de LibreOffice y el visor de PDF de Evince:

    sudo DEBIAN_FRONTEND=noninteractive \
        apt install --assume-yes  task-gnome-desktop
    
  2. Configura la sesión de Escritorio remoto de Chrome para usar Gnome

    sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/gnome-session" > /etc/chrome-remote-desktop-session'
    
  3. Inhabilita el servicio del administrador de pantalla Gnome en tu instancia, ya que entra en conflicto con el servicio del Escritorio remoto de Chrome.

    sudo systemctl disable gdm3.service
    sudo reboot
    

    Este comando reinicia la VM.

  4. Vuelve a conectarte a través de SSH antes de continuar.

  5. De forma opcional, instala el navegador Chrome en tu instancia:

    curl -L -o google-chrome-stable_current_amd64.deb \
    https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo apt install --assume-yes --fix-broken ./google-chrome-stable_current_amd64.deb
    

Gnome-Classic

  1. En la ventana de SSH conectada a tu instancia de VM, instala el entorno de escritorio completo de Gnome, incluido el navegador Firefox, el paquete de aplicaciones para oficinas de LibreOffice y el visor de PDF de Evince:

    sudo DEBIAN_FRONTEND=noninteractive \
        apt install --assume-yes  task-gnome-desktop
    

    A través del parámetro DEBIAN_FRONTEND=noninteractive, se suprime una ventana de solicitud de configuración de un diseño para un teclado que se conectará de manera directa a la instancia de VM.

  2. Configura la sesión del Escritorio remoto de Chrome para que use el escritorio de la versión clásica de Gnome:

    sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/gnome-session-classic" > /etc/chrome-remote-desktop-session'
    
  3. Inhabilita el servicio del administrador de pantalla Gnome en tu instancia, ya que entra en conflicto con el servicio del Escritorio remoto de Chrome.

    sudo systemctl disable gdm3.service
    sudo reboot
    

    Este comando reinicia la VM.

  4. Vuelve a conectarte a través de SSH antes de continuar.

  5. De forma opcional, instala el navegador Chrome en tu instancia:

    curl -L -o google-chrome-stable_current_amd64.deb \
    https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo apt install --assume-yes --fix-broken ./google-chrome-stable_current_amd64.deb
    

KDE Plasma

  1. En la ventana de SSH conectada a tu instancia de VM, instala el entorno de escritorio completo de KDE Plasma, incluido el navegador Firefox, el paquete de aplicaciones para oficinas de LibreOffice y el visor de PDF de Evince:

    sudo DEBIAN_FRONTEND=noninteractive \
        apt install --assume-yes  task-kde-desktop
    

    A través del parámetro DEBIAN_FRONTEND=noninteractive, se suprime una ventana de solicitud de configuración de un diseño para un teclado que se conectará de manera directa a la instancia de VM.

  2. Configura tu sesión de escritorio remoto de Chrome para usar KDE Plasma

    sudo bash -c 'echo "exec /etc/X11/Xsession /usr/bin/startplasma-x11" > /etc/chrome-remote-desktop-session'
    
  3. De forma opcional, instala el navegador Chrome en tu instancia:

    curl -L -o google-chrome-stable_current_amd64.deb \
    https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    sudo apt install --assume-yes --fix-broken ./google-chrome-stable_current_amd64.deb
    

Inicia y configura el servicio Escritorio remoto de Chrome

Para iniciar el servidor del escritorio remoto, debes tener una clave de autorización para la Cuenta de Google que deseas usar para conectarte a este.

  1. En la consola de Google Cloud, ve a la página Instancias de VM:

    Ir a la página Instancias de VM

  2. Para conectarte a la instancia, haz clic en el botón SSH.

  3. En el navegador Chrome de tu computadora local, ve a la página de configuración de la línea de comandos del Escritorio remoto de Chrome:

    https://remotedesktop.google.com/headless

  4. Si aún no lo hiciste, accede con una Cuenta de Google. Esta es la cuenta que se usará para autorizar el acceso remoto.

  5. En la página Configurar otra computadora, haz clic en Comenzar.

  6. Haz clic en Autorizar.

    Debes permitir que el Escritorio remoto de Chrome acceda a tu cuenta. Si lo apruebas, se mostrará en la página una línea de comandos para Debian Linux similar a la siguiente:

    DISPLAY= /opt/google/chrome-remote-desktop/start-host \
        --code="4/xxxxxxxxxxxxxxxxxxxxxxxx" \
        --redirect-url="https://remotedesktop.google.com/_/oauthredirect" \
        --name=$(hostname)
    

    Debes usar este comando para iniciar y configurar el servicio de Escritorio remoto de Chrome en tu instancia de VM y vincularlo con tu Cuenta de Google a través del código de autorización.

  7. Copia el comando en la ventana de SSH que está conectada a tu instancia y, luego, ejecútalo.

  8. Cuando se te solicite, ingresa un PIN de 6 dígitos. Este número se usará para obtener autorización adicional cuando te conectes más tarde.

    Es posible que veas errores como No net_fetcher o Failed to read. Puedes ignorar estos errores.

  9. Verifica que el servicio se ejecute con el siguiente comando.

    sudo systemctl status chrome-remote-desktop@$USER
    

    Si el servicio se encuentra en ejecución, verás un resultado en el que se incluye el estado active:

    chrome-remote-desktop.service - LSB: Chrome Remote Desktop service
        Loaded: loaded (/lib/systemd/system/chrome-remote-desktop@USER.service; enabled; vendor preset: enabled)
        Active: active (running) since DATE_TIME; ELAPSED_TIME
    

Conéctate a la instancia de VM

Puedes conectarte a la instancia de VM a través de la aplicación web del Escritorio remoto de Chrome.

  1. En tu computadora local, ve al sitio web del Escritorio remoto de Chrome.

  2. Haz clic en Access my computer.

  3. Si aún no accediste a Google, accede con la misma Cuenta de Google que usaste para configurar el servicio de Escritorio remoto de Chrome.

    Verás tu instancia de VM nueva en la lista de crdhostRemote Devices.

  4. Haz clic en el nombre de la instancia del escritorio remoto.

  5. Cuando se te solicite, ingresa el PIN que creaste antes y, luego, haz clic en el botón de flecha para conectarte.

    Ya estás conectado al entorno del escritorio en tu instancia remota de Compute Engine.

  6. Si se te solicita, siempre permite que la aplicación de escritorio remoto lea tu portapapeles y te permita copiar y pegar entre aplicaciones locales y remotas.

  7. Si instalaste el escritorio de Xfce, la primera vez que te conectes, se te solicitará que configures los paneles del escritorio. Haz clic en Use Default Config para obtener la barra de tareas estándar en la parte superior y el panel de inicio rápido en la parte inferior.

Escritorio de xfce en el que se muestra la barra de tareas y el panel de inicio rápido.

Mejora la experiencia de escritorio remoto

En esta sección, se proporcionan instrucciones para cambiar la configuración para mejorar la experiencia de escritorio remoto.

Instala la app de Chrome de escritorio remoto

La app de Chrome de escritorio remoto brinda una experiencia de ventanas separadas y permite que las combinaciones de teclas que por lo general intercepta Chrome se usen en el sistema remoto.

Si esta app no está instalada, haz lo siguiente:

  1. Abre el panel Opciones de sesión con el botón que aparece cuando mueves el mouse a un lado de la ventana.
  2. En la sección Instalar app, haz clic en Empezar.
  3. Haga clic en Install.

Se volverá a abrir la sesión de escritorio remoto en su propia ventana de aplicaciones.

Puedes mover cualquier sesión del escritorio remoto desde una pestaña de Chrome hacia la ventana de la app si haces clic en el ícono Abrir con en la barra de la URL.

Inhabilita animaciones y los efectos en Cinnamon

El escritorio de Cinnamon usa varias animaciones y funciones gráficas, como ventanas y menús semitransparentes que aparecen y desaparecen de forma gradual. Debido a que toma más tiempo renderizar estas animaciones en una conexión remota, pueden generar que la interfaz de usuario parezca lenta.

Para inhabilitar estos efectos, haz lo siguiente:

  1. En el escritorio de Cinnamon, selecciona Menu > Preferences > Effects.

    Configuración de las preferencias del escritorio en Cinnamon.

  2. Inhabilita cada uno de los efectos:

    Inhabilitación de los efectos de animación en Cinnamon

Configura una contraseña de usuario

La cuenta de usuario que creó Compute Engine no tiene una contraseña. Sin embargo, varios entornos de escritorio requieren uno para desbloquear protectores de pantalla y autorizar acciones administrativas. Por lo tanto, es importante establecer una contraseña para tu usuario:

  1. Conéctate a la instancia a través de SSH, como lo hiciste la primera vez que la configuraste.
  2. Crea una contraseña para el usuario:

    sudo passwd $(whoami)
    

Inhabilita protectores de pantalla y pantallas de bloqueo

Debido a que accedes a tu escritorio desde una computadora remota, por lo general, no es necesario usar un protector o un bloqueador de pantalla, por lo que puedes inhabilitarlos.

Xfce

  1. En el menú Applications, selecciona Settings > Screensaver.
  2. Configura Mode como Disable Screen Saver.

Cinnamon

  1. En el escritorio, selecciona Menú > Preferencias > Protector de pantalla.
  2. En la pestaña Settings, configura Delay como Never y, luego, inhabilita las siguientes dos configuraciones de bloqueo para bloquear la pantalla de manera automática.

Gnome

  1. En el escritorio, haz clic en Activities y escribe Settings.
  2. Selecciona la aplicación Settings.
  3. En la aplicación Settings, selecciona Privacy > Lock Screen.
  4. Inhabilita Automatic Screen Lock y cierra el cuadro de diálogo.
  5. Selecciona Devices > Keyboard.
  6. En la lista de combinaciones de teclas, ve a la sección Sistema y haz clic en Pantalla de bloqueo.
  7. Presiona la tecla Backspace para inhabilitar la combinación de teclas y, luego, haz clic en Set.
  8. Selecciona Power y Blank Screen como Never.

Gnome-Classic

  1. En el escritorio, selecciona Applications > System Tools > Settings.
  2. En la aplicación Settings, selecciona Privacy > Lock Screen.
  3. Inhabilita Automatic Screen Lock y cierra el cuadro de diálogo.
  4. Selecciona Devices > Keyboard.
  5. En la lista de combinaciones de teclas, ve a la sección Sistema y haz clic en Pantalla de bloqueo.
  6. Presiona la tecla Backspace para inhabilitar la combinación de teclas y, luego, haz clic en Set.
  7. Selecciona Power y Blank Screen como Never.

KDE Plasma

  1. En el escritorio, haz clic en el botón de menú de KDE y, luego, escribe Screen Locking.
  2. Selecciona la aplicación Screen Locking.
  3. En la aplicación Configure Screen Locking, inhabilita Lock Screen Automatically after y haz clic en el botón para borrar la combinación de teclas.
  4. Haga clic en OK.

Aumenta la resolución del escritorio

Si tienes un monitor con una resolución muy alta, es posible que el tamaño máximo predeterminado del escritorio remoto de 1,600 x 1,200 sea demasiado pequeño. Si es así, puedes aumentarlo para que se adapte a la resolución de tu monitor.

  1. Usa SSH para conectarte a la instancia.
  2. Configura la variable de entorno CHROME_REMOTE_DESKTOP_DEFAULT_DESKTOP_SIZES para incluir la resolución de tu monitor:

    echo "export CHROME_REMOTE_DESKTOP_DEFAULT_DESKTOP_SIZES=1600x1200,3840x2560" \
        >> ~/.profile
    
  3. Reinicia el servicio:

    sudo systemctl restart chrome-remote-desktop@$USER
    

Habilita el códec de video avanzado:

El códec AV1 con color de alta calidad mejora la calidad de la imagen y permite una mejor codificación de la información de color pura (como el texto):

  1. Abre el panel Opciones de sesión con el botón que aparece cuando mueves el mouse a un lado de la ventana.
  2. En el campo Códec de video, selecciona AV1.
  3. Asegúrate de que el campo Color de alta calidad esté habilitado.

Elige un entorno de escritorio diferente

En la sección anterior, configuraste un entorno de escritorio predeterminado en el archivo de configuración /etc/chrome-remote-desktop-session global. También puedes elegir un entorno de escritorio diferente (si está instalado). Para ello, especifícalo en el archivo de configuración .chrome-remote-desktop-session de tu directorio principal:

Xfce

echo "exec /etc/X11/Xsession /usr/bin/xfce4-session" > ~/.chrome-remote-desktop-session

Cinnamon

echo "exec /etc/X11/Xsession /usr/bin/cinnamon-session-cinnamon2d" > ~/.chrome-remote-desktop-session

Gnome

echo "exec /etc/X11/Xsession /usr/bin/gnome-session" > ~/.chrome-remote-desktop-session

Gnome-Classic

echo "exec /etc/X11/Xsession /usr/bin/gnome-session-classic" > ~/.chrome-remote-desktop-session

KDE Plasma

echo "exec /etc/X11/Xsession /usr/bin/startplasma-x11" > ~/.chrome-remote-desktop-session

Después de realizar este cambio, reinicia el servicio para que se aplique:

sudo systemctl restart chrome-remote-desktop@$USER

Como se mencionó antes, el Escritorio remoto de Chrome no admite la aceleración de gráficos 3D. Por lo tanto, en el caso de cualquier entorno de escritorio que use estas funciones, debes inhabilitar los gráficos 3D o la sesión no se iniciará.

Automatiza el proceso de instalación

Cuando necesitas configurar varias máquinas a través del Escritorio remoto de Chrome, los pasos de la instalación manual pueden volverse repetitivos. Puedes usar una secuencia de comandos de inicio personalizada para automatizar este proceso a través del siguiente procedimiento.

Para los fines de este instructivo, se usa el tipo de máquina predeterminado con un disco de arranque de Debian Linux. Si usas esto para tu propio entorno, te recomendamos cambiar el tipo de máquina, el nombre, la región, el tamaño del disco de arranque o alguna otra configuración.

  1. En la consola de Google Cloud, ve a la página Instancias de VM:

    Ir a la página Instancias de VM

  2. Haz clic en Crear instancia.

  3. Configura el nombre de la instancia como crdhost-autoinstall.

  4. Desplázate y expande la sección Opciones avanzadas.

  5. Expande la sección Administración.

  6. Copia la siguiente secuencia de comandos de shell y pégala en el campo Automation/Startup Script:

    #!/bin/bash -x
    #
    # Startup script to install Chrome remote desktop and a desktop environment.
    #
    # See environmental variables at then end of the script for configuration
    #
    
    function install_desktop_env {
      PACKAGES="desktop-base xscreensaver dbus-x11"
    
      if [[ "$INSTALL_XFCE" != "yes" && "$INSTALL_CINNAMON" != "yes" ]] ; then
        # neither XFCE nor cinnamon specified; install both
        INSTALL_XFCE=yes
        INSTALL_CINNAMON=yes
      fi
    
      if [[ "$INSTALL_XFCE" = "yes" ]] ; then
        PACKAGES="$PACKAGES xfce4"
        echo "exec xfce4-session" > /etc/chrome-remote-desktop-session
        [[ "$INSTALL_FULL_DESKTOP" = "yes" ]] && \
          PACKAGES="$PACKAGES task-xfce-desktop"
      fi
    
      if [[ "$INSTALL_CINNAMON" = "yes" ]] ; then
        PACKAGES="$PACKAGES cinnamon-core"
        echo "exec cinnamon-session-cinnamon2d" > /etc/chrome-remote-desktop-session
        [[ "$INSTALL_FULL_DESKTOP" = "yes" ]] && \
          PACKAGES="$PACKAGES task-cinnamon-desktop"
      fi
    
      DEBIAN_FRONTEND=noninteractive \
        apt-get install --assume-yes $PACKAGES $EXTRA_PACKAGES
    
      systemctl disable lightdm.service
    }
    
    function download_and_install { # args URL FILENAME
      if [[ -e "$2" ]] ; then
         echo "cannot download $1 to $2 - file exists"
         return 1;
      fi
      curl -L -o "$2" "$1" && \
        apt-get install --assume-yes --fix-broken "$2" && \
        rm "$2"
    }
    
    function is_installed {  # args PACKAGE_NAME
      dpkg-query --list "$1" | grep -q "^ii" 2>/dev/null
      return $?
    }
    
    # Configure the following environmental variables as required:
    INSTALL_XFCE=yes
    INSTALL_CINNAMON=yes
    INSTALL_CHROME=yes
    INSTALL_FULL_DESKTOP=yes
    
    # Any additional packages that should be installed on startup can be added here
    EXTRA_PACKAGES="less bzip2 zip unzip tasksel wget"
    
    apt-get update
    
    if ! is_installed chrome-remote-desktop; then
        if [[ ! -e /etc/apt/sources.list.d/chrome-remote-desktop.list ]]; then
            echo "deb [arch=amd64] https://dl.google.com/linux/chrome-remote-desktop/deb stable main" \
                | tee -a /etc/apt/sources.list.d/chrome-remote-desktop.list
        fi
        apt-get update
        DEBIAN_FRONTEND=noninteractive \
            apt-get install --assume-yes chrome-remote-desktop
    fi
    
    install_desktop_env
    
    [[ "$INSTALL_CHROME" = "yes" ]] && ! is_installed google-chrome-stable && \
      download_and_install \
        https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb \
        /tmp/google-chrome-stable_current_amd64.deb
    
    echo "Chrome remote desktop installation completed"
    

    A través de esta secuencia de comandos, se realizan las siguientes tareas cada vez que se reinicia la máquina:

    • Si el paquete del escritorio remoto no está instalado, se hace lo siguiente:
      • Agrega el repositorio de paquetes de Debian del Escritorio remoto de Chrome
      • Instala el paquete y las dependencias del Escritorio remoto de Chrome.
    • Se instalan los entornos de escritorio de Xfce o Cinnamon (en función de la configuración de la secuencia de comandos).
    • Si la opción de entorno de escritorio completo está habilitada, se instalan los paquetes necesarios.
    • Si la opción del navegador Google Chrome está habilitada, pero no instalada, se hace lo siguiente:
      • Descarga el paquete de Google Chrome.
      • Instala Google Chrome y sus paquetes dependientes.
  7. Haz clic en Crear.

    La instancia toma unos minutos en crearse y, en la primera ejecución con todas las opciones habilitadas, la instalación de la secuencia de comandos puede tomar hasta 10 minutos en completarse.

  8. Para supervisar el progreso, conéctate a la instancia de VM a través de SSH y, en la terminal de la instancia, ejecuta el siguiente comando:

    sudo journalctl -o cat -f _SYSTEMD_UNIT=google-startup-scripts.service
    

    A través de este comando, se muestra el resultado de la secuencia de comandos de inicio. Cuando finalice la secuencia de comandos, verás lo siguiente:

    INFO startup-script: Chrome remote desktop installation completed
    INFO startup-script: Return code 0.
    INFO Finished running startup scripts.
    

A través de esta secuencia de comandos, solo se instalan los paquetes necesarios. Aún debes configurar el servicio de escritorio remoto para tu usuario, como se describió antes.

Existen varias formas de especificar una secuencia de comandos de inicio cuando se crea una instancia de VM nueva:

  • Pegarla en la consola de Google Cloud (como se mostró antes)
  • Almacenarla como un archivo en una máquina local y usar la marca --metadata-from-file cuando creas la instancia a través de Google Cloud CLI.
  • Almacenarla en un bucket de Cloud Storage y especificar la URL al objeto, ya sea en la consola o en gcloud CLI.

Para obtener más información sobre los métodos alternativos de configuración de la secuencia de comandos de inicio, consulta Ejecuta secuencias de comandos de inicio en la documentación de Compute Engine.

Soluciona problemas

En esta sección, se proporcionan consejos para la solución de problemas de esta guía.

Verifica el estado del servicio de Escritorio remoto de Chrome

Si en algún momento el servicio de Escritorio remoto de Chrome no responde, puedes verificar su estado a través del uso de SSH para conectarte a la instancia y la ejecución del siguiente comando:

sudo systemctl status chrome-remote-desktop@$USER

Si el servicio se encuentra en ejecución, verás un resultado en el que se incluye el estado active:

chrome-remote-desktop.service - LSB: Chrome Remote Desktop service
    Loaded: loaded (/lib/systemd/system/chrome-remote-desktop@USER.service; enabled; vendor preset: enabled)
    Active: active (running) since DATE_TIME; ELAPSED_TIME

Para reiniciar el servicio, usa el siguiente comando en la ventana de SSH:

sudo systemctl restart chrome-remote-desktop@$USER

Obtén información de registro y error

El Escritorio remoto de Chrome escribe información de registro en el diario del sistema:

journalctl SYSLOG_IDENTIFIER=chrome-remote-desktop     # All logs
journalctl SYSLOG_IDENTIFIER=chrome-remote-desktop -e  # Most recent logs
journalctl SYSLOG_IDENTIFIER=chrome-remote-desktop -b  # Logs since reboot

Puedes revisar estos archivos de registro en busca de mensajes de error.

Vuelve a habilitar el servicio

Si inhabilitaste las conexiones a la instancia remota por error en la app cliente, puedes volver a configurar y habilitar el servicio si sigues las instrucciones que se incluyen en Configura e inicia el servicio de Escritorio remoto de Chrome.

Verifica los archivos de configuración de sesión globales y específicos del usuario.

Comprueba el contenido del archivo de configuración /etc/chrome-remote-desktop-session global y el archivo de configuración ~/.chrome-remote-desktop-session específico del usuario y confirma que los entornos de escritorio especificados estén instalados.

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, sigue estos pasos:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Borra la instancia de Compute Engine

Como alternativa a la eliminación del proyecto completo, puedes borrar la instancia de VM que creaste para este instructivo:

  1. En la consola de Google Cloud, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. Selecciona la casilla de verificación junto al nombre de la instancia que creaste antes (crdhost).

  3. Haz clic en el botón Borrar (Delete) en la parte superior de la página:

    Eliminación de la instancia de VM.

    La eliminación de tu instancia toma unos minutos.

Desautoriza el Escritorio remoto de Chrome para la instancia

Si ya no deseas conectarte a la instancia de VM, puedes inhabilitarla y quitarla de la lista de Dispositivos remotos (Remote devices).

  1. En tu computadora local, ve al sitio web de la lista de dispositivos remotos del Escritorio remoto de Chrome.
  2. Haz clic en junto al nombre de la instancia crdhost.
  3. Haz clic en Aceptar para confirmar que se debe inhabilitar la conexión del dispositivo remoto.

¿Qué sigue?