Instalación y configuración de xrdp para usar Escritorio remoto con Ubuntu

Se aplica a: ✔️ máquinas virtuales Linux ✔️ conjuntos de escalado flexibles

Cuando sean nuevas en Linux, o para escenarios de solución de problemas rápidos, el uso del escritorio remoto puede ser más fácil que el acceso de Secure Shell (SSH). En este artículo se detalla cómo instalar y configurar un entorno de escritorio (xfce) y el escritorio remoto (xrdp) para la máquina virtual Linux que ejecuta Ubuntu.

El artículo se escribió y probó con una máquina virtual Ubuntu 18.04.

Nota

El uso de Escritorio remoto a través de Internet presentará un "retardo" notable (latencia de entrada) en comparación con el uso del escritorio local. En esto pueden influir múltiples factores, como la velocidad local de Internet y la distancia desde el centro de datos donde está hospedada la máquina virtual. Este retraso no suele reflejar el rendimiento de la propia máquina virtual.

Prerrequisitos

Este artículo requiere una máquina virtual de Ubuntu 18.04 LTS o Ubuntu 20.04 LTS existente en Azure. Si necesita crear una máquina virtual, utilice uno de los métodos siguientes:

Instalar un entorno de escritorio en la máquina virtual Linux

La mayoría de las máquinas virtuales Linux en Azure no tienen un entorno de escritorio instalado de forma predeterminada. Las máquinas virtuales Linux se suelen administrar utilizando conexiones SSH en lugar de un entorno de escritorio, sin embargo hay varios entornos de escritorio que puede elegir instalar. Según la elección del entorno de escritorio, se puede utilizar hasta 2 GB de espacio en disco y tardar hasta 10 minutos en instalar y configurar todos los paquetes necesarios.

En el ejemplo siguiente se instala el entorno de escritorio xfce4 ligero en una máquina virtual de Ubuntu. Los comandos para otras distribuciones varían ligeramente (use yum para realizar la instalación en Red Hat Enterprise Linux y configurar las reglas de selinux adecuadas o use zypper para realizar la instalación en SUSE, por ejemplo).

Primero, SSH en la máquina virtual. El ejemplo siguiente se conecta a la máquina virtual denominada myvm.westus.cloudapp.azure.com con el nombre de usuario azureuser. Use sus propios valores:

ssh azureuser@myvm.westus.cloudapp.azure.com

Si está utilizando Windows y necesita más información sobre el uso de SSH, consulte Uso de claves SSH con Windows.

A continuación, instale xfce con apt:

sudo apt-get update
sudo DEBIAN_FRONTEND=noninteractive apt-get -y install xfce4
sudo apt install xfce4-session

Instalar y configurar un servidor de escritorio remoto

Ahora que tiene instalado un entorno de escritorio, configure un servicio de escritorio remoto para escuchar las conexiones de acceso remoto entrantes. xrdp es un servidor de protocolo de escritorio remoto (RDP) de código abierto que está disponible en la mayoría de las distribuciones de Linux y funciona bien con xfce. Instalar xrdp en la máquina virtual de Ubuntu de la siguiente forma:

sudo apt-get -y install xrdp
sudo systemctl enable xrdp

En Ubuntu 20, debe conceder acceso de certificado a un usuario xrdp:

sudo adduser xrdp ssl-cert

Indique a xrdp qué entorno de escritorio utilizar al iniciar la sesión. Configure xrdp para usar xfce como el entorno de escritorio de la siguiente forma:

echo xfce4-session >~/.xsession

Reinicie el servicio xrdp para que los cambios surtan efecto de la siguiente forma:

sudo service xrdp restart

Establecer una contraseña de cuenta de usuario

Si ha creado una contraseña para su cuenta de usuario cuando se creó la máquina virtual, omita este paso. Si solo usa la autenticación de clave SSH y no tiene una contraseña de cuenta local establecida, especifique una contraseña antes de utilizar xrdp para iniciar sesión en la máquina virtual. xrdp no puede aceptar claves SSH para la autenticación. En el ejemplo siguiente se especifica una contraseña para la cuenta de usuario azureuser:

sudo passwd azureuser

Nota

Si especifica una contraseña, no se actualizará la configuración SSHD para permitir los inicios de sesión de contraseña si actualmente no es así. Desde la perspectiva de seguridad, puede que desee conectarse a la máquina virtual con un túnel SSH mediante la autenticación basada en claves y, a continuación, conectarse a xrdp. Si es así, omita el paso siguiente acerca de cómo crear una regla de grupo de seguridad de red para permitir el tráfico de escritorio remoto.

Crear una regla de grupo de seguridad de red para el tráfico de escritorio remoto

Para permitir que el tráfico de escritorio remoto llegue a la máquina virtual Linux, tiene que crearse una regla del grupo de seguridad de red que permita que el TCP del puerto 3389 llegue a la máquina virtual. Para obtener más información sobre las reglas de grupo de seguridad de red, consulte ¿Qué es un grupo de seguridad de red? También puede usar el Azure Portal para crear una regla de grupo de seguridad de red.

En el ejemplo siguiente se crea una regla de grupo de seguridad de red con az vm open-port en el puerto 3389. En la CLI de Azure, no en la sesión de SSH de la máquina virtual, abra la siguiente regla de grupo de seguridad de red:

az vm open-port --resource-group myResourceGroup --name myVM --port 3389

Conectar la máquina virtual Linux con un cliente de escritorio remoto

Abra el cliente de escritorio remoto local y conéctese a la dirección IP o nombre DNS de la máquina virtual Linux.

Captura de pantalla del cliente de Escritorio remoto

Escriba el nombre de usuario y la contraseña para la cuenta de usuario en la máquina virtual como se indica a continuación:

Captura de pantalla de la pantalla de inicio de sesión de xrdp

Tras la autenticación, el entorno de escritorio de xfce se cargará y tendrá un aspecto similar al ejemplo siguiente:

entorno de escritorio xfce a través de xrdp

Si el cliente RDP local usa la autenticación a nivel de red (NLA), deberá deshabilitar a esa configuración de conexión. XRDP no admite la autenticación a nivel de red en este momento. También puede mirar soluciones alternativas de RDP que admitan la autenticación, como FreeRDP.

Solución de problemas

Si no se puede conectar a la máquina virtual Linux con un cliente de escritorio remoto, use netstat en la máquina virtual Linux para comprobar que la máquina virtual escucha las conexiones RDP de la siguiente forma:

sudo netstat -plnt | grep rdp

En el ejemplo siguiente se muestran las escuchas de la máquina virtual en el puerto TCP 3389 según lo esperado:

tcp     0     0      127.0.0.1:3350     0.0.0.0:*     LISTEN     53192/xrdp-sesman
tcp     0     0      0.0.0.0:3389       0.0.0.0:*     LISTEN     53188/xrdp

Si el servicio xrdp-sesman no está escuchando, en una máquina virtual Ubuntu, reinicie el servicio como se indica a continuación:

sudo service xrdp restart

Revise los registros en /var/log en la máquina virtual Ubuntu para obtener indicaciones sobre el motivo por el que puede que el servicio no responda. También puede supervisar el registro del sistema durante un intento de conexión al escritorio remoto para ver los errores:

tail -f /var/log/syslog

Otras distribuciones de Linux como Red Hat Enterprise Linux y SUSE pueden tener diferentes maneras de reiniciar los servicios y alternar las ubicaciones de archivo de registro que revisar.

Si no recibe ninguna respuesta en el cliente de escritorio remoto y no ve todos los eventos de registro del sistema, este comportamiento indica que el tráfico de escritorio remoto no puede llegar a la máquina virtual. Revise las reglas de grupo de seguridad de red para asegurarse de que tiene una regla para permitir el TCP en el puerto 3389. Para obtener más información, consulte Solucionar problemas de conectividad de la aplicación.

Pasos siguientes

Para obtener más información sobre cómo crear y utilizar claves de SSH con máquinas virtuales Linux, consulte Crear claves SSH para máquinas virtuales de Linux en Azure.

Para obtener información sobre el uso de SSH de Windows, vea Uso de claves SSH con Windows.