Accueil / Objets Connectés / Linux : Armbian, Raspbian, Ubuntu... / Armbian : accéder au bureau à distance de l’Orange Pi avec VNC et TightVNC

Armbian : accéder au bureau à distance de l’Orange Pi avec VNC et TightVNC

Orange Pi (et Raspberry Pi) sont des mini ordinateurs cartes qui sont très souvent utilisés à distance sans écran (ni clavier et souris). Dans certains cas, ou si on débute sur Linux, on aimerait toutefois avec un accès graphique au bureau Linux. Dans ce tutoriel, nous allons apprendre à installer et configurer un serveur VNC (Virtual Network Computing) sur la distribution Armbian qui est très bien adaptée à l’Orange Pi.

Installer le serveur TightVNC sur Armbian

TightVNC (page officielle du projet) est un serveur VNC léger qui fonctionne sur toutes les distributions Linux ainsi que sur Windows. Avant de l’installer, il est préférable de mettre à jour le système.

Une fois l’opération terminée, installez TightVNC.

Créer un utilisateur VNC (optionnel)

Il est possible de se connecter à votre Orange Pi ou Raspberry Pi avec votre utilisateur habituel mais par sécurité, il est préférable d’ajouter un utilisateur dédié.

Changez d’utilisateur pour être en root (si ce n’est pas le cas).

Ajoutez un nouvel utilisateur au système avec la commande adduser ( adduser vnc ) et répondez aux questions (mot de passe, questions optionnelles).

On donne à cet utilisateur le droit d’utiliser la commande sudo (si on veut pouvoir installer de nouveaux paquets à distance).

Démarrer manuellement le serveur VNC

Changeons d’utilisateur

Maintenant on démarre le serveur VNC sur le port 1. Au premier lancement, vous devrez indiquer le mot de passe nécessaire pour vous authentifier depuis un client.

Connaître les paramètres du serveur actif

Si vous avez besoin de connaître les paramètres actuel du serveur VNC actif, exécutez la commande suivant

On peut ainsi savoir sur quel port est renvoyé le flux (-rfbport), la résolution de l’image produite (-geometry)…

Arrêter un serveur VNC

Pour arrêter un serveur VNC, utilisez la commande suivant suivi de l’écran. 1 par défaut

Se connecter depuis un client

Il existe de très nombreux clients VNC pour toutes les plateformes (macOS, Windows, Linux…) et pour smartphone (iOS, Android…). RealVNC (site internet) est disponible sur toutes les plateformes (y compris mobile). Il est gratuit pour un usage personnel. Si vous préférez rester dans les projets 100% Open Source et libres, gage de respect de la vie privée, vous pouvez vous tourner vers UltraVNC (page officielle du projet).

Démarrez votre client et saisissez l’adresse IP de votre Orange PI (ou n’importe quel serveur VNC) suivi du port sur lequel est démarré ce dernier. Par défaut ce sera 5901.

ce qui donne par exemple 192.168.1.90:5901

Par défaut, la connexion n’est pas cryptée. Ce n’est pas très gênant lorsqu’on se connecte à un poste sur son propre réseau mais attention si vous accédez à distance à votre bureau car tout va transiter en claire sur internet…

Acceptez le message d’avertissement.

realvnc-avertissement-connexion-non-cryptee

Vous êtes maintenant connecté à votre bureau.

tightvnc vnc armbian orange pi lite

Créer un service systemd pour démarrer VNC automatiquement au démarrage

Commençons par arrêter le serveur en cours de fonctionnement

Nous allons créer un nouveau script qui sera exécuté au démarrage comme n’importe quel autre service.

Collez le contenu dans le script. Ce script contient trois commandes : démarrer (start), arrêter (stop) et redémarrer (restart) le serveur VNC.

Enregistrez avec CTRL+X puis Y.

On rend ce script exécutable

On peut maintenant exécutez les commandes proposées par ce script manuellement comme ceci

Maintenant, ajoutons un script (Unit file) qui va permettre de gérer VNC comme un service avec systemd.

Puis collez ce script

On relance systemd pour prendre en compte le nouveau service. Puis on démarre le serveur VNC à l’aide de systemd

Maintenant nous disposons de 4 commandes pour démarrer, arrêter, re-démarrer et connaître l’état (statut) du service VNC.

Sécuriser le serveur VNC avec un tunnel SSH

Nous allons maintenant sécuriser la connexion en faisant passer la connexion dans un tunnel SSH. C’est parti.

On commence par arrêter le service.

Puis on ouvre le fichier de configuration

Modifiez la ligne OPTIONS en ajoutant l’option -localhost à la fin comme ceci

Enregistrez avec CTRL+X puis Y.

Et enfin on relance le service VNC.

Ouvrir un tunnel sécurisé SSH

Pour accéder de manière sécurisée, nous devons déjà créer un tunnel SSH par lequel on fera transiter tous les échanges entre le client et le serveur VNC. Sur Windows, vous pouvez utiliser Putty, sur macOS ou Linux, on utilisera le Terminal tout simplement.

Sur Putty, dans le menu de gauche, allez à Connection -> SSH -> Tunnels.

Dans la section Add New Forwarded Port, entrez 5901 dans le champ Source port et localhost:5901 comme Destination. Cliquez sur le bouton Add pour terminer

putty windows tunnel ssh

Sur macOS ou Linux, exécutez la commande suivante et saisissez votre mot de passe.

Maintenant, dans votre client VNC, remplacez l’IP du serveur VNC par localhost:5901. Ne tenez pas compte du message d’avertissement, la connexion n’est pas sécurisée entre votre ordinateur et votre ordinateur ! Tout ce qui sort (et rentre) passe maintenant dans le tunnel SSH.