Debian 13 : comment se connecter en Bureau à distance (RDP) avec xRDP ?
Sommaire
I. Présentation
Dans ce tutoriel, nous allons voir comment installer xRDP sur Debian pour se connecter en RDP depuis Windows sur notre machine Linux. Autrement dit, vous pourrez vous connecter en Bureau à distance sur Linux. La connexion sera possible depuis Windows, mais également une autre machine sous Linux, sous macOS ou sous Android : il suffit d'un client RDP.
Le protocole RDP (Remote Desktop Protocol) sert à se connecter à distance sur une machine avec un client Bureau à distance. Quant à xRDP, il s'agit d'une implémentation open source du protocole RDP de Windows.
Version originale de l'article : 18 août 2021.
II. Prérequis xRDP
Au niveau de la machine Linux, il y a un prérequis : vous devez avoir un environnement de bureau installé. Que ce soit GNOME, MATE, XFCE, etc... Au choix. Par défaut, Debian 13 Trixie est livré avec l'environnement de bureau Xfce. Si vous avez besoin de l'installation sur votre machine, exécutez ces commandes :
sudo apt update && sudo apt upgrade -y
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils -y
Si vous avez une machine Debian avec un environnement de bureau installé, vous pouvez passer à la suite.
III. Installation de xRDP sous Debian 13
Ouvrez un Terminal sur la machine Debian et commencez par mettre à jour les paquets (le préfixe sudo est nécessaire si vous n'utilisez pas le compte root).
sudo apt update
Ensuite, installez le paquet xRDP qui est dans les dépôts par défaut :
sudo apt install xrdp -y

Suite à l'installation, on peut s'assurer que le service est bien démarré :
sudo systemctl status xrdp

Malheureusement, si l'on regarde le détail du statut, on constate qu'il y a une erreur.

Cette erreur est normale. En effet, nous devons ajouter l'utilisateur xrdp, associé au serveur xRDP, au groupe ssl-cert de notre machine Debian. En fait, xRDP s'appuie sur le fichier ssl-cert-snakeoil.key pour la partie certificat de la connexion RDP, mais ce fichier est accessible uniquement aux membres du groupe ssl-cert.
Voici la commande à exécuter :
sudo adduser xrdp ssl-cert

Redémarrez le service xRDP :
sudo systemctl restart xrdp
Enfin, activez le démarrage automatique du service xRDP :
sudo systemctl enable xrdp
Notre serveur xRDP est prêt à l'emploi !
Si vous obtenez une erreur comme celle ci-dessous, c'est que xRDP ne peut pas démarrer car le port 3389 est déjà occupé par un autre processus. Vous pouvez identifier le service en question avec la commande ss et vous devrez changer le port de xRDP ou du service problématique.
nov. 04 10:52:29 debian-13 xrdp[5175]: [ERROR] g_tcp_bind(13, 3389) failed bind IPv6 (errno=98) and IPv4 (errno=22).
nov. 04 10:52:29 debian-13 xrdp[5175]: [ERROR] trans_listen_address failed
nov. 04 10:52:29 debian-13 xrdp[5175]: [ERROR] xrdp_listen_main_loop: xrdp_listen_get_port failed
Note : si vous utilisez un firewall sur votre machine Debian, il faut penser à ouvrir le port 3389 qui est le port par défaut du protocole RDP. Par exemple pour UFW, voici la commande à exécuter : sudo ufw allow 3389
IV. Configurer xRDP sous Debian 13
Sans apporter de modifications à la configuration, vous pouvez déjà vous connecter à la machine Linux à distance. Toutefois, il me semble important de vous présenter les fichiers de configuration du serveur xRDP.
Il y a un premier de configuration ici :
/etc/xrdp/xrdp.ini
Dans ce fichier, vous pouvez modifier le port d'écoute du serveur xRDP pour ne pas utiliser 3389. C'est une bonne pratique de ne pas utiliser le port par défaut pour ce type de service. Cela se configure au niveau de la directive suivante qu'il suffit de modifier :
port=3389

Ce fichier permet également de gérer l'apparence de l'écran de connexion (message, couleurs, image de fond, etc.).
Il y a un second fichier de configuration, que voici :
/etc/xrdp/sesman.ini
Il contient de nombreux paramètres. Il va permettre d'empêcher l'utilisateur root de se connecter en RDP :
# Définir sur "false" pour empêcher le compte "root" de se connecter en RDP (par défaut, c'est autorisé) AllowRootLogin=false
Dans la configuration de xRDP, nous pouvons aussi autoriser seulement les utilisateurs d'un groupe spécifique, par défaut tsusers, à se connecter en RDP. Le problème, c'est que ce groupe n'est pas créé et que tout le monde peut se connecter.
Pour déclarer un groupe, il faut renseigner cette directive :
TerminalServerUsers=tsusers
Au passage, il faut basculer sur true la directive ci-dessous pour imposer la vérification des membres du groupe pour gérer la connexion.
AlwaysGroupCheck=true
Nous obtenons alors le fichier suivant :

Il faut penser à créer votre groupe si ce n'est pas déjà fait. Vous pouvez aussi créer un groupe en prenant le nom suggéré par défaut :
sudo groupadd tsusers
Ensuite, nous allons ajouter un utilisateur au groupe :
sudo adduser flo tsusers
Enfin, pensez à redémarrer le service xRDP pour que les changements soient pris en compte. Il ne reste plus qu'à tester. Si un utilisateur n'est pas autorisé à se connecter, le gestionnaire de sessions lui renverra le message suivant :

Pour gérer les sessions, il y a d'autres paramètres à connaître :
# Nombre de sessions RDP maximales, en même temps MaxSessions=10 # Tuer une session déconnectée après X minutes ou secondes KillDisconnected=true # Délai avant de tuer une session déconnectée. Si "0" = 60 secondes DisconnectedTimeLimite=0
Les événements sont loggués dans deux fichiers de log :
/var/log/xrdp.log /var/log/xrdp-sesman.log
Passons maintenant aux tests.
V. Se connecter à Debian en RDP depuis Windows
Depuis la machine Windows, il suffit d'ouvrir le client Bureau à distance, de saisir l'adresse IP de l'hôte Linux et de se connecter. Comme c'est la première connexion, il faudra accepter le certificat. Si vous utilisez un port spécifique, pensez à l'indiquer sous cette forme : <adresse IP>:<port>.

Nous arrivons sur une fenêtre de connexion, où nous devons renseigner un identifiant et un mot de passe.

Et voilà, la connexion RDP sur Debian est établie !

VI. Résoudre les erreurs de connexion xRDP
Après avoir établi une connexion, si vous obtenez un écran noir ou un écran bleu (de la couleur du fond du prompt RDP) : pas de panique ! En fait, cela se produit si vous utilisez la même session (même utilisateur) en direct sur le serveur et en connexion RDP.
Vous devez fermer la session en local sur la machine et relancer la connexion RDP. Ensuite, cela va fonctionner.
Il y a de fortes chances pour que deux prompts s'affichent suite à la connexion pour vous demander le mot de passe Administrateur :
- Il est nécessaire de s'authentifier pour créer un périphérique avec gestion de couleurs
- Authentication is required to refresh the system repositories

Cela se produit à cause du composant PolKit qui gère les interactions d'un utilisateur standard avec les applications. Nous allons créer une politique personnalisée pour qu'il nous laisse tranquilles quand on se connecte en RDP.
Créez le fichier suivant :
sudo nano /etc/polkit-1/localauthority.conf.d/02-allow-colord.conf
Ajoutez le contenu ci-dessous pour créer la règle :
polkit.addRule(function(action, subject) {
if ((action.id == "org.freedesktop.color-manager.create-device" ||
action.id == "org.freedesktop.color-manager.create-profile" ||
action.id == "org.freedesktop.color-manager.delete-device" ||
action.id == "org.freedesktop.color-manager.delete-profile" ||
action.id == "org.freedesktop.color-manager.modify-device" ||
action.id == "org.freedesktop.color-manager.modify-profile" ||
action.id == "org.freedesktop.packagekit.system-sources-refresh" || action.id == "org.freedesktop.packagekit.system-network-proxy-configure") &&
subject.isInGroup("{users}")) {
return polkit.Result.YES;
}
});
Sans même redémarrer le service xRDP ou un autre service, vous pouvez retenter une connexion RDP : cette fois-ci vous allez accéder au bureau Linux sans être embêté ! 😉

VII. Conclusion
Nous venons de voir dans ce tutoriel comment installer et configurer xRDP sous Debian 13. La mise en place de xRDP permet d'administrer une machine avec une interface graphique sans recourir systématiquement à un accès SSH ou à un client VNC.
xRDP est assez simple à configurer sur Linux, mais il faut penser à apporter quelques réglages pour que ce soit pleinement opérationnel. En effet, ce service augmente la surface d'attaque de la machine Linux en ajoutant un point d'entrée en RDP, il est donc essentiel de procéder à la configuration de ce service.
Où le fichier de configuration de xRDP sur Debian ?
Le fichier de configuration principal est le suivant : /etc/xrdp/xrdp.ini. Il est accompagné par un second fichier très important pour jouer sur le comportement de la session : /etc/xrdp/sesman.ini.
Quel est le port utilisé par xRDP ?
Par défaut, le service xRDP utilise le port 3389, ce qui correspond au numéro de port par défaut utilisé par le protocole RDP et les services Bureau à distance basés sur RDP. Le numéro de port est personnalisable dans la configuration.
Comment afficher le statut de xRDP ?
Pour afficher l'état général du service xRDP, exécutez simplement la commande suivante : sudo systemctl status xrdp. S'il y a une erreur, vous pouvez consulter les journaux pour en savoir plus.
Dois-je installer un environnement de bureau sur Debian pour que xRDP fonctionne ?
Oui. Pour qu’une connexion graphique s’établisse via le protocole RDP, un environnement de bureau (comme XFCE, MATE ou GNOME) doit être installé et lancé. Sinon, la session distante restera vide ou échouera. Dans ce cas, une connexion à distance via SSH est plus adaptée.
Puis-je me connecter en tant que root via xRDP ?
Oui, c'est possible, mais ce n'est pas recommandé. Cette autorisation est gérée dans la configuration via le paramètre nommé AllowRootLogin.


Bonjour,
Merci pour ce tuto extrêmement efficace. Comment l’ai-je raté avant ? Ha… oui il est relativement récent.
Pas une erreur tout fonctionne parfaitement et la clarté du post nous permet de comprendre toutes les manip pas à pas donc de peaufiner au besoin.
Félicitation
Merci Matthieu 🙂
Merci pour cet article. Est ce fonctionnel dans un environnement serveur (plusieurs personnes se connecte en même temps) ?
merci encore !
Slt Florian,
Je te suit depuis un bon moment. Et ton travail et très bien structuré. J’imagine le boulot 😅.
Par rapport à ton tuto, malheureusement il semblerait que ça ne fonctionne plus sous une debian 11.
Pour info, je suis sous debian 11 dernière version et gnome 3. Et j’ai une fermeture de fenêtre xorg juste après avoir rentré le user et mdp a la connection. Et pas de message.
Pas trouvé de solution sur internet pour debian 11 avec xrdp.
En as tu une ?
Cordialement
Bonjour !
Il faut malheureusement installer « xfce4 » et modifier le fichier startwm.sh.
Il faut mettre un # devant ces deux lignes :
# test -x /etc/X11/Xsession && exec /etc/X11/Xsession
# exec /bin/sh /etc/X11/Xsession
et ajouter :
startxfce4
Je n’ai pas encore trouvé pour que cela fonctionne avec l’environnement gnome que je préfère