Configura el Escritorio remoto de Chrome para Linux en Compute Engine

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. 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. Para este enfoque, no necesitas abrir puertos de firewall y debes usar tu Cuenta de Google a fin de realizar la autenticación y la 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 comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En la página de selección de proyectos de Cloud Console, selecciona o crea un proyecto de Cloud.

    Ir a la página Selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.

En este instructivo, se requiere que uses el navegador Google Chrome en tu computadora local. Si aún no lo tienes, puedes instalarlo desde la página principal de Google Chrome.

Crea una instancia de Compute Engine

Para los fines de este instructivo, el tipo de máquina predeterminado de 1 CPU virtual (n1-standard-1) con el disco de arranque de Debian Linux funciona bien, por lo que no necesitas cambiar la configuración predeterminada.

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

    Ir a la página Instancias de VM

  2. Haz clic en Crear.

  3. Configura el nombre de la instancia como crdhost.

  4. De forma opcional, selecciona una región y una zona cercanas a ti.

  5. Haga clic en Crear.

    La creación de la instancia toma unos minutos.

  6. 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

El siguiente paso es instalar el Escritorio remoto de Chrome en la instancia de VM.

  1. En la ventana de SSH conectada a tu instancia de VM, actualiza los datos del administrador de paquetes y, luego, instala wget:

    sudo apt update
    sudo apt-get install --assume-yes wget
    
  2. Descarga el paquete de instalación de Escritorio remoto de Chrome para Debian Linux:

    wget https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb
    
  3. Instala el paquete y sus dependencias:

    sudo dpkg --install chrome-remote-desktop_current_amd64.deb
    sudo apt install --assume-yes --fix-broken
    

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:

  • Xfce: Es un entorno simple y ligero de escritorio que funciona bien con conexiones remotas en redes más lentas.
  • Cinnamon: Es un entorno tradicional de escritorio con todas las funciones que le resultará más familiar a los usuarios de computadoras de escritorio. Sin embargo, usa una mayor cantidad de elementos gráficos y necesita una red rápida para funcionar sin problemas.

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á.

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
    

    Mediante el parámetro DEBIAN_FRONTEND=noninteractive, se suprime una ventana de solicitud de configuración de un diseño para un teclado que se conectará directamente a la instancia de VM.

  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. El bloqueador de pantalla predeterminado de Xfce es Light Locker, que no funciona con el Escritorio remoto de Chrome (En el bloqueador de pantalla, se muestra una pantalla en blanco y no se puede desbloquear). Por lo tanto, instala XScreenSaver como alternativa:

    sudo apt install --assume-yes xscreensaver
    
  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 de Evince:

    sudo apt install --assume-yes task-xfce-desktop
    

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
    

    Mediante el parámetro DEBIAN_FRONTEND=noninteractive, se suprime una ventana de solicitud de configuración de un diseño para un teclado que se conectará directamente a la instancia de VM.

  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
    

Sin importar el entorno de escritorio que hayas instalado, sigue estos pasos para completar el proceso de instalación:

  1. Inhabilita el servicio del administrador de pantallas en tu instancia. No hay ninguna pantalla conectada a tu instancia, por lo que el servicio del administrador de pantallas no se iniciará.

    sudo systemctl disable lightdm.service
    
  2. De forma opcional, instala el navegador Chrome en tu instancia:

    wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
    
    sudo dpkg --install google-chrome-stable_current_amd64.deb
    sudo apt install --assume-yes --fix-broken
    

Configura e inicia el servicio de Escritorio remoto de Chrome

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

  1. En la ventana SSH conectada a tu instancia de VM, agrega tu cuenta de usuario al grupo de Linux chrome-remote-desktop y cierra la sesión.

    sudo usermod -a -G chrome-remote-desktop $USER
    logout
    
  2. En Cloud Console, haz clic en el botón SSH para volver a conectarte a tu instancia.

  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. En la página Download and install Chrome Remote Desktop, haz clic en Siguiente.

  7. 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=
    

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

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

  9. Cuando se te solicite un nombre para la computadora, ingresa el nombre de la instancia (crdhost).

  10. 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.

Conéctate a la instancia de VM

Puedes conectarte a la instancia de VM mediante 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 Acceso remoto.

  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 Dispositivos remotos (Remote Devices).Lista de los dispositivos remotos disponibles para conectarse.

  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.

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 a fin de mejorar la experiencia de escritorio remoto.

Habilita la sincronización del portapapeles

La sincronización del portapapeles permite que el contenido de este se comparta entre las máquinas locales y las remotas. Si esta función aún no está habilitada, haz lo siguiente:

  1. Usa el botón  al costado de la ventana para abrir el panel Opciones de sesión.
  2. En la sección Habilitar la sincronización del portapapeles, haz clic en Comenzar.
  3. Haz clic en Allow.

Instala la app de Chrome de escritorio remoto

La app de Chrome de escritorio remoto brinda una experiencia de ventanas separadas y permite que se usen más combinaciones de teclas en el sistema remoto. Si esta app no está instalada, haz lo siguiente:

  1. Usa el botón  al costado de la ventana para abrir el panel Opciones de sesión.
  2. En la sección Instalar app, haz clic en Comenzar.
  3. Haz clic en Install.

    La sesión del escritorio remoto se volverá a abrir en una ventana separada.

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 Open With  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

Inhabilita los protectores de pantalla, las pantallas de bloqueo y las contraseñas

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.

Xfce

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

    Inhabilitación del protector de pantalla en Xfce.

Cinnamon

  1. En el escritorio de Cinnamon, selecciona Menu > Preferences > Screensaver.
  2. En la pestaña Settings, configura Delay como Never e inhabilita las dos opciones de configuración de bloqueo:

    Cuadro de diálogo de la configuración de los efectos en Cinnamon.

La cuenta de usuario que creó Compute Engine no tiene una contraseña, y la mayoría de las apps de bloqueo de pantalla no pueden desbloquear las pantallas de los usuarios que no tienen una contraseña. Sin embargo, incluso si los protectores de pantalla están inhabilitados, es posible bloquear la pantalla desde el menú Applications.

Si deseas evitar que se bloquee el acceso al escritorio remoto, puedes establecer una contraseña para tu usuario:

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

    sudo passwd $(whoami)
    

    Esta contraseña solo se solicitará para desbloquear la pantalla.

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
    

Elige un entorno de escritorio diferente

En la sección anterior, configuraste un entorno de escritorio predeterminado en el archivo /etc/chrome-remote-desktop-session. 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 /usr/bin/xfce4-session" > ~/.chrome-remote-desktop-session

Cinnamon

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

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

sudo systemctl restart chrome-remote-desktop

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 mediante el 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 mediante el siguiente procedimiento:

  1. En Cloud Console, 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. De forma opcional, selecciona una región y una zona cercanas a ti.

  5. Copia la siguiente secuencia de comandos de shell y pégala en el cuadro de texto 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"
    
      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
      curl -L -o "$2" "$1"
      dpkg --install "$2"
      apt-get install --assume-yes --fix-broken
    }
    
    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"
    
    apt-get update
    
    ! is_installed chrome-remote-desktop && \
      download_and_install \
        https://dl.google.com/linux/direct/chrome-remote-desktop_current_amd64.deb \
        /tmp/chrome-remote-desktop_current_amd64.deb
    
    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"
    

    Mediante 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:
      • Se descarga y se instala el paquete del Escritorio remoto de Chrome.
      • Se instalan los paquetes dependientes.
    • 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 Chrome está habilitada, pero no instalada, se hace lo siguiente:
      • Se descarga y se instala el paquete del Escritorio remoto de Chrome.
      • Se instalan los paquetes dependientes.
  6. 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.

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

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

    Mediante 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.
    

Mediante 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 Cloud Console (como se mostró antes)
  • Almacenarla como un archivo en una máquina local y usar la marca --metadata-from-file cuando creas la instancia mediante la herramienta de línea de comandos de gcloud
  • Almacenarla en un depósito de Cloud Storage y especificar la URL al objeto, ya sea en la consola o en la herramienta de gcloud

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

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 mediante el uso de SSH para conectarte a la instancia y la ejecución del siguiente comando:

sudo systemctl status chrome-remote-desktop

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 (/etc/init.d/chrome-remote-desktop; generated; vendor preset: enabled)
    Active: active (exited) since DATE_TIME, ELAPSED_TIME

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

sudo systemctl restart chrome-remote-desktop

Obtén información de registro y error

El Escritorio remoto de Chrome escribe información de registro en archivos cuyos nombres coinciden con el siguiente patrón:

/tmp/chrome_remote_desktop_DATE_TIME_*

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.

Realiza una limpieza

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud Platform por los recursos que usaste en este instructivo:

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. En Cloud Console, ve a la página Administrar recursos.

    Ir a la página Administrar recursos

  2. En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar .
  3. En el cuadro de diálogo, escribe el ID del proyecto y haz clic en Cerrar para borrar el proyecto.

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 Cloud Console, 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 (Beta).

  2. Haz clic en  junto al nombre de la instancia:

    Inhabilitación del dispositivo remoto en Chrome.

  3. Haz clic en Aceptar para confirmar que se debe inhabilitar la conexión del dispositivo remoto.

Próximos pasos

  • Intenta acceder al entorno del escritorio remoto desde tu teléfono celular mediante las apps del Escritorio remoto de Chrome de Android o IOS.
  • Obtén más información sobre otras opciones para crear de una estación de trabajo virtual.
  • Prueba otras características de Google Cloud. Consulta nuestros instructivos.