¿Cómo configurar una conexión de escritorio remoto (RDP) en una Raspberry Pi?

raspi

Un dispositivo Raspberry Pi se caracteriza por su pequeño tamaño y por la existencia de conectores para periféricos externos como teclado, ratón y monitores, lo cual lo hace bastante modular. Sin embargo, no siempre se tendrán a mano estos periféricos para la administración y operación del sistema operativo, lo cual nos obliga a establecer sesiones remotas para su administración, partiendo del principio que tenemos una conexión a una red de datos disponible. En este caso podemos utilizar SSH (Secure Shell), la cual nos permitirá interactuar con el sistema operativo en una consola de comandos. Pero, ¿y si necesitamos acceder a un entorno de escritorio (Desktop Environment) como LXDE? La respuesta fácil sería usando un cliente de X Windows.

En mi caso, tengo en casa una Raspberry Pi Model B que uso para tunelizar mi tráfico de navegación, para descarga de software y pruebas de seguridad en general:

10366053_10152465476294874_2858461710827120175_n

Sin embargo, configurar una conexión cliente/servidor X Windows suele ser un poco complejo y el tema se complica un poco más cuando se intenta acceder desde un equipo cliente con Microsoft Windows. En Internet se pueden encontrar múltiples how-to para configurar este tipo de conexiones, sobre todo empleando un cliente X Windows como xming. Un excelente tutorial para esta configuración se puede encontrar en este artículo: “X11 on Raspberry Pi – remote login from your laptop“.

Ahora bien, para aquellos seguidores fieles de la procrastinación y del principio KISS – como es mi caso – hay una opción mucho más sencilla que nos permitirá conectarnos a nuestra Raspberry Pi empleando el cliente nativo de RDP (Remote Desktop Protocol) de nuestro equipo Microsoft Windows.

Instalación de XRDP

XRDP es un proyecto open source que permite la instalación de un servicio de terminales remotas en un sistema operativo Linux. Este software no viene instalado por defecto en Raspbian (que es el sistema operativo que usaremos en este ejemplo) por lo que procederemos con su instalación.

Para ello, simplemente nos conectamos vía SSH al dispositivo Raspberry desde nuestra estación Microsoft Windows empleando PuTTY e ingresamos el comando

sudo apt-get install xrdp

Si todo sale bien, se podrá ver la siguiente pantalla:

Capture2

Si el mensaje “Starting Desktop Protocol server” tiene un estado diferente a “OK”, intentar reiniciar el dispositivo Raspberry o reinstalar el software.

Conectarse al dispositivo Raspberry Pi empleando Remote Desktop Connection

Finalmente, nos conectaremos al dispositivo Raspberry Pi empleando el cliente nativo de RDP de Microsoft Windows. Para ello vamos a Inicio -> Ejecutar -> mstsc y configuramos los parámetros de conexión:

rdp

Algunas veces se puede recibir este mensaje:

warning

En este caso, el error proviene de la autenticación del servidor al cual nos estamos conectando (XRDP en Raspberry Pi). Esta es una característica de seguridad de Terminal Services, pero en nuestro caso específico no aplica, por lo cual responderemos “Yes”. Si todo sale bien, veremos la siguiente pantalla:

screen

Introducimos las credenciales de autenticación y al finalizar tendremos un entorno de escritorio X completamente funcional desde una sesión de RDP. Fácil, ¿no?

screen2

Configuración del gestor de ventanas para las sesiones de xrdp

En el caso que se quiera iniciar un gestor de ventanas específico en las sesiones de xrdp, se debe especificar en el fichero ~/.Xclients (ubicado en el home de cada usuario) de la siguiente manera:

Gnome 3

echo "gnome-session" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service

Gnome Fallback

echo "gnome-fallback" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service

KDE

echo "startkde" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service

MATE

echo "mate-session" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service

Cinnamon

<code>echo "cinnamon" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service</code>

Xfce4

echo "startxfce4" > ~/.Xclients
chmod +x ~/.Xclients
sudo systemctl restart xrdp.service

Comments

  • Buenas David.

    Sigo el proceso y al conectar consigo lo que parece un escritorio completamente nuevo y no el que vería por ejemplo desde la conexión HDMI de la raspberry. ¿Esto es así?

    kjbturok May 20, 2017
  • Buenos días kjbturok:

    He agregado una nueva parte en donde indico cómo configurar el gestor de ventanas para que inicie con la sesión de xrdp en función del usuario que se autentique. Obviamente, lo primero es validar que el gestor de ventanas esté instalado y luego configurarlo en el fichero ~/.Xclients

    Saludos,

    David

    david May 23, 2017

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.