Comment contrôler un Raspberry Pi depuis un PC sous GNU-Linux

Hervé Troadec

L’intérêt des nano-ordinateurs est qu’ils ne coûtent pas très cher et ne sont pas trop encombrants. Ces deux avantages ont tendance à disparaître quand il faut faire l’acquisition d’un écran et d’un clavier pour les utiliser, surtout quand cette utilisation concerne la gestion de processus sur des systèmes embarqués plutôt que la navigation internet et la bureautique.

Il y a même des cas où cette solution est tout simplement impossible, car certains nano-ordinateurs ne possèdent même pas la connectique nécessaire.

La solution consiste à donner le contrôle du nano-ordinateur à un ordinateur distant connecté par le réseau, pour permettre à celui-ci de lui « prêter » son écran et son clavier.

Cette solution, simple à utiliser, existe en Open Source et s’appelle OpenSSH. L’objet de ce tutoriel est de vous guider dans sa mise en œuvre pour un Raspberry Pi, sachant que l’extrapolation pour une autre plateforme sera toujours possible.

Bonne lecture. Commentez

- Titre : Comment contrôler un Raspberry Pi depuis un PC sous GNU-Linux

- Auteur : Hervé Troadec

- Parution : 30 août 2018

- Public visé :

- Licence : Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright ® 2018 Hervé Troadec. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Contexte

- I-A. Coté Raspberry Pi

- I-B. Côté PC ou portable

- II. Avant-propos

- III. Introduction

- IV. Réseau local minimum

- V. Activation du SSH

- V-A. Procédure à suivre pour activer SSH depuis le PC

- VI. Connexion au Raspberry Pi

- VI-A. Installation de Vinagre

- VI-B. Connexion SSH

- VI-B-1. Adresse IP du Raspberry Pi

- VI-B-2. Connexion SSH avec Vinagre

- VI-C. Connexion VNC

- VI-C-1. Installation de TightVncServer

- VI-C-2. Lancement de TightVncServer

- VI-C-3. Connexion VNC avec Vinagre

- VII. Pour aller plus loin

- VIII. Résumé

- IX. Remerciements

I - Contexte

Ce tutoriel a été réalisé dans les conditions matérielles et logicielles suivantes :

- PC sous Debian stretch 9.5 bureau Mate

- Raspberry Pi 3B+ sous Raspbian stretch 9,4 desktop version juin 2018

I-A - Coté Raspberry Pi

Raspbian étant l'OS officiel dédié au Raspberry Pi, et donc parfaitement adapté à cette plateforme, il est probable que c'est celui qui sera le plus fréquemment installé. C'est de toute manière l'option la plus raisonnable, de mon point de vue, pour ceux qui débutent et qui, donc, sont les plus susceptibles d'être intéressés par ce tutoriel. Comme, de plus, mes PC sont sous Debian, il était logique, ou du moins cohérent, pour moi, d'avoir fait ce choix.

Si votre système n'est pas encore installé, comme ce n'est pas l’objet de ce tutoriel, je vous propose de consulter Raspberry Pi 3 - Préparation du système où vous trouverez tout ce qu'il faut savoir, et si vous n'avez pas de raison précise pour choisir un autre OS, d'opter pour Raspbian.

D'autres distributions, comme Ubuntu Mate, Pidora, Arch Linux, Gentoo par exemple, conviendront également. Attention toutefois :

- Windows 10 IoT Core et Risc OS ne sont pas des distributions GNU-Linux et ne sont donc pas concernés par ce tutoriel.

- OpenElec, LibreElec et OSMC ne sont pas non plus vraiment concernés puisque leur destination première est d'animer des cartes connectées à un téléviseur et pilotées à l'aide d'une télécommande. L'utilisation de SSH sera malgré tout possible sur ces distributions, qui sont basées sur Raspbian.

I-B - Côté PC ou portable

En ce qui concerne l'OS installé sur votre PC, le seul impératif est que ce soit une distribution GNU-Linux. Il n’est pas nécessaire que vous soyez sous Debian. Cela dit, je ne peux pas garantir l’adéquation parfaite de ce tutoriel avec toutes les distributions. Il restera applicable dans ses grandes lignes, mais nécessitera probablement quelques adaptations. L’éventail des choix est tel qu’il m’est impossible de vous guider plus avant. Pour ceux dont les distributions sont basées sur Debian, le tutoriel devrait fonctionner dans son intégralité. Pour les autres, ça ne devrait pas être insurmontable, une distribution GNU-Linux restant une distribution GNU-Linux.

Les logiciels utilisés sont tous dans les dépôts officiels Debian. Si la distribution de votre choix, que ce soit pour la carte Raspberry Pi ou pour votre PC, n’est pas basée sur Debian, il se peut que ces logiciels ne soient pas disponibles sur vos dépôts. Dans ce cas, il vous faudra faire un choix : soit utiliser des logiciels hors dépôts, soit remplacer les logiciels proposés par leur équivalent dans les dépôts de votre distribution.

II - Avant-propos

L’utilisation du Raspberry Pi revêt trois aspects principaux :

1. Utilisation en tant que nano-ordinateur : le Raspberry Pi est alors doté d’un écran et d’un clavier au minimum, équipement qui peut être complété par une souris, une imprimante, une connexion internet, etc. Il est dans ce cas autonome et, par conséquent, se suffit à lui-même. Il faut toutefois garder à l’esprit qu’il reste, au niveau performance, en dessous des ordinateurs bas de gamme actuels.

2. Utilisation en tant que media center : la plupart du temps connecté à un téléviseur, il utilise généralement les fonctionnalités de la télécommande de celui-ci. Un clavier additionnel, généralement connecté en WiFi permet d’étendre son utilisation à celle d’un nano-ordinateur, sachant que l’ergonomie sera souvent moyenne, fonction notamment de la taille de l’écran et de son éloignement par rapport à l’utilisateur.

3. Utilisation en tant que matériel embarqué : en règle générale, il ne possède alors ni périphérique d’affichage, ni périphérique de saisie, hormis ceux nécessaires aux processus qu’il pilote et les broches GPIO. Ces périphériques ne permettent en aucun cas d’avoir accès au système d’exploitation, et donc ne permettent pas d’intervenir sur la machine elle-même.

- En cas, par exemple, de nécessité de mise à jour des programmes de gestion de processus, il peut être difficile, voire impossible, en fonction de l’intégration mécanique de la carte, de raccorder celle-ci aux périphériques classiques, sans démontage, et dans ce cas, rendre les tests problématiques.

L’objet de ce tutoriel concerne le troisième aspect : il s’agit de mettre en œuvre une procédure permettant à un PC de « prêter » ses propres périphériques au Raspberry Pi par l’intermédiaire d’une connexion réseau, pour travailler sur celui-ci comme s’il s’agissait d’un ordinateur autonome. Le shell ou le bureau de la carte Raspberry Pi sera simplement affiché dans une fenêtre sur le PC au lieu d’être affiché sur un écran dédié, un peu comme sur une machine virtuelle. Tout ce qui se passera dans la fenêtre ne concernera que le Raspberry Pi et tout ce qui se passera en dehors ne concernera que le PC.

III - Introduction

Pour prendre le contrôle du Raspberry Pi depuis un PC, le protocole le plus couramment utilisé est le SSH (Secure SHell). Comme son nom peut le laisser supposer, il permet au client, ici le PC, d'ouvrir un shell sécurisé sur le serveur, ici le Raspberry Pi.

Dire que SSH permet d'ouvrir un shell, c'est dire que vous pourrez travailler sur votre Raspberry Pi en mode console, et que vous pourrez y faire tout ce qu’on peut donc faire dans un terminal ouvert sur une machine GNU-Linux, c’est-à-dire… tout. À part, bien sûr, ce qui nécessite une interface graphique. Dans de nombreux cas, c'est tout à fait suffisant. SSH est également le nom du programme qui utilise ce protocole. Ce programme est installé d'origine sur la distribution Raspbian.

Il se peut toutefois que les logiciels dont vous avez besoin, ou votre façon de travailler, imposent l'utilisation d'une interface graphique que SSH ne peut vous fournir. De plus, tout le monde n'est pas forcément à l'aise avec la ligne de commande, même si, pour les puristes, il n'y a que ça de vrai. Pour cela, nous utiliserons le protocole VNC (Virtual Network Computing) dont l'objet est le contrôle du bureau d'un ordinateur distant. On pourrait n'utiliser que VNC mais il n’est pas nativement sécurisé. Et là, l'utilisation de SSH prend tout son sens en ouvrant un tunnel sécurisé par lequel transiteront les données.

Dans ses versions récentes, Raspbian intègre, à l’instar de SSH, un logiciel gérant le protocole VNC. Il s’agit de RealVNC. Toutefois, ce logiciel n’étant ni libre ni Open Source, je considère qu’il n’a rien à faire dans un système qui se veut Open Source, tant coté matériel que logiciel, et je ne l’utiliserai pas. Je vous proposerai d’installer à sa place le logiciel TightVncServer, présent dans les dépôts officiels Debian, et qui fera parfaitement l'affaire.

Cependant, pour ceux qui préféreront utiliser le logiciel fourni avec la distribution, j’indiquerai plus loin la procédure à suivre pour l’activer. Mais après, ils devront se débrouiller tout seuls pour s’en servir. Ça ne devrait pas être insurmontable, et l’ensemble du tutoriel restera applicable.

Enfin, il vous faudra un logiciel chargé de faire la demande de connexion SSH ou VNC, et d'afficher le shell ou le bureau, en fonction du choix, dans la fenêtre dont je parlais plus haut, ouverte sur votre PC. Le logiciel Vinagre, présent dans les dépôts permet de faire les deux. Lui aussi conviendra parfaitement à notre propos et nous l'installerons donc.

En résumé :

Matériel requis :
Un PC sous GNU-Linux (Debian de préférence) : les logiciels requis doivent se trouver dans les dépôts de la plupart des distributions.
Un Raspberry Pi sous Raspbian (si possible) et son alimentation : tout modèle disposant d'une connectivité réseau (Ethernet). Pour les autres modèles (Zero, A et A+), un adaptateur USB⇒-Ethernet fera probablement l'affaire, mais je n'ai pas testé.
Un câble Ethernet pour raccorder le Raspberry Pi au routeur.

Logiciels requis (présents dans les dépôts Debian) :
Côté PC (client) :
Vinagre : à installer
Côté Raspberry (serveur) :
SSH server : déjà installé mais pas forcément activé
TightVncServer : à installer

IV - Réseau local minimum

Voici comment pourrait se présenter votre réseau :

Dans ce schéma, j’ai représenté le réseau minimal permettant de mettre en œuvre ce tutoriel. Ce réseau est composé de trois entités :

- Le client : votre PC ou votre Portable.

- Le serveur : votre carte Raspberry Pi.

- La Box : elle permet la connexion au réseau.

J’ai également noté les différentes manipulations que nous allons réaliser dans ce tutoriel, en regard des matériels qu’elles concernent.

Le but de ce tutoriel est donc de vous permettre d’afficher, dans une fenêtre ouverte sur l’écran du client, le shell et/ou le bureau du serveur, et, bien sûr, d’interagir avec le serveur en utilisant le clavier et la souris du client.

V - Activation du SSH

À ce stade, votre configuration est :

- un PC opérationnel, le futur client, connecté à votre réseau local ;

- une carte Raspberry Pi, le futur serveur, non opérationnelle et donc connectée à rien ;

- une carte micro-SD sur laquelle est installée la dernière version de Raspbian.

Pour que le client puisse ouvrir un shell sur le serveur en utilisant le protocole SSH, il faut que le serveur fournisse cette fonctionnalité au préalable, et pour cela, il faut activer SSH.

Depuis 2016, pour des raisons évidentes de sécurité, SSH est désactivé par défaut dans Raspbian.
Si votre installation est plus ancienne ou si vous ne l'avez pas réalisée vous-même, il peut être déjà activé sur votre carte sans que vous le sachiez. Cela n'a aucune importance. Dans ce cas, le fait de l'activer de nouveau ne changera rien.
Si toutefois vous avez de bonnes raisons de penser que SSH est déjà activé, rendez-vous directement chapitre #6.Connexion au Raspberry Pi. Inutile de perdre du temps.

Raspbian fournit un utilitaire en ligne de commande, raspi-config, permettant de réaliser cette activation depuis le Raspberry Pi, mais pour cela, il faudrait que votre Raspberry Pi dispose d’un écran et d’un clavier, ce qui n’est pas le cas et ce qui est la raison d’être de ce tutoriel. Donc cette activation ne peut pas, dans notre cas, être réalisée depuis le Raspberry Pi.

Heureusement, Raspbian fournit aussi une solution alternative, qui permettra d’activer SSH automatiquement lors du premier démarrage du Raspberry Pi.

Cette solution consiste à utiliser le PC pour créer, sur la carte micro-SD, un fichier vide nommé ssh dans la racine de la partition d'amorçage (de boot) de Raspbian. Il est important de ne pas confondre la partition de boot, dont le point de montage est /boot, avec le dossier boot qui se trouve dans la partition d'installation du système d'exploitation dont le point de montage est /root.

Cette procédure nécessite que vous ayez un lecteur de carte micro-SD sur votre PC. Si vous avez installé vous-même l'OS, ce doit être le cas. Sinon, vous devrez acheter ou vous faire prêter un adaptateur.

Au premier démarrage de votre Raspberry Pi, la procédure d’amorçage détectera la présence de ce fichier et rendra le lancement de ce service automatique.

V-A - Procédure à suivre pour activer SSH depuis le PC

Je vais détailler l'utilisation du terminal et de la ligne de commande pour cette section, à l'attention de ceux qui ne sont pas familiarisés avec cette pratique. Il ne faut pas oublier que ce tutoriel s’adresse plutôt aux débutants. Je demande aux autres d’être indulgents et de se souvenir de leurs débuts. Par la suite, comme le principe sera le même, je rentrerai moins dans les détails.

Commencez par insérer la carte micro-SD dans le lecteur du PC

Ouvrez un terminal. Pour ce faire, j’ai l’habitude de faire un clic droit sur le bureau pour ouvrir le menu contextuel. Toutefois, en fonction du système que vous avez installé et du choix de votre bureau, vous n'aurez pas forcément exactement le même menu, ni même, peut-être, la possibilité d'ouvrir un terminal en partant de là. Dans ce cas, il vous faudra probablement aller voir du côté du menu principal de lancement d'application.

C'est un petit peu le revers de la médaille en ce qui concerne le choix important des distributions et de leur « customisation ». On ne peut pas faire un tutoriel qui colle parfaitement dans tous les cas de figure. Il faut parfois que le lecteur fasse un petit effort d'adaptation.

Cliquez sur « Ouvrir dans un terminal ». Celui-ci devrait ressembler à ceci :

naute@debian:~/Bureau$ ▉

ou à cela :

naute@debian:/home/naute/Bureau$ ▉

suivant votre paramétrage.

Ce que vous voyez affiché s'appelle le prompt ou l'invite de commande. Cela signifie que l'ordinateur attend que vous saisissiez une commande pour pouvoir l'exécuter.

Le vôtre sera différent en ce sens qu'il dépendra de ce que vous aurez saisi lors de l'installation de votre système, et de l’endroit d’où vous lancerez le terminal, mais sa forme générale sera la même. Dans le cas présent, il signifie que j'ai ouvert une session sous le compte naute sur une machine appelée debian.
Le ~ est la représentation symbolique de mon dossier personnel, ici /home/naute/, et je suis donc dans le dossier /home/naute/Bureau/, ce qui est normal et rassurant puisque j'ai ouvert ce terminal depuis le bureau.
Le $ signifie que je suis en mode user.
En mode super-utilisateur (root), le symbole $ est remplacé par #.

Saisissez ls /media/naute pour lister les dossiers et fichiers se trouvant dans le répertoire /media/naute. Bien entendu, vous remplacerez naute par l'équivalent sur votre machine, à savoir l'identifiant se trouvant avant l'@ du prompt.

naute@debian:~/Bureau$ ls /media/naute▉

Puis appuyez sur la touche Entrée de votre clavier.

naute@debian:~/Bureau$ ls /media/naute
musique projets
naute@debian:~/Bureau$ ▉

La liste des éléments présents dans le dossier /media/naute s'affiche. Ici, par exemple, j'ai deux clés USB connectées : musique et projets.

La liste peut être vide, si vous n'avez aucune mémoire de masse externe connectée à votre PC (hors réseau, naturellement).

Insérez votre carte micro-SD dans le connecteur adéquat et relancez la même commande.

N'hésitez pas à utiliser les touches ↑ ou ↓ pour vous déplacer parmi les commandes déjà saisies. Ça fait gagner du temps. Ici, par exemple, un appui sur la touche ↑ va réafficher la dernière commande saisie, à savoir ls /media/naute. Vous n'avez plus qu'à appuyer sur Entrée pour relancer la commande.

naute@debian:~/Bureau$ ls /media/naute
musique projets
naute@debian:~/Bureau$ ls /media/naute▉

Puis appuyez sur la touche Entrée de votre clavier.

naute@debian:~/Bureau$ ls /media/naute
musique projets
naute@debian:~/Bureau$ ls /media/naute
boot musique projets root SETTINGS
naute@debian:~/Bureau$ ▉

Trois nouveaux dossiers sont apparus dans le dossier /media/naute. Ce sont les points de montage de trois partitions se trouvant sur la carte micro-SD. La partition qui nous intéresse est la partition d'amorçage, qui est ici montée sous le nom de boot. Saisissez la commande cd /media/naute/boot suivie de Entrée.

naute@debian:~/Bureau$ ls /media/naute
projets musique
naute@debian:~/Bureau$ ls /media/naute
boot musique projets root SETTINGS
naute@debian:~/Bureau$ cd /media/naute/boot
naute@debian:~/media/naute/boot$ ▉

N'hésitez pas à utiliser la touche Tab pour ce genre de saisie. Vous saisissez la ou les premières lettres d'un dossier puis vous appuyez sur Tab. S'il n'y a pas d'ambiguïté, le reste du nom du dossier s'inscrira automatiquement jusqu'au / suivant, et ainsi de suite. Sinon, c'est qu'un autre dossier commençant par les mêmes lettres existe dans le dossier courant et vous devrez saisir une (ou plusieurs) lettres supplémentaires pour lever l'ambiguïté.

Cette aide à la saisie fonctionne également pour les fichiers.

Saisissez maintenant sudo touch ssh suivi de Entrée pour créer le fichier ssh dans le dossier courant.

Petite explication concernant la commande sudo touch ssh.
touch ssh est la commande à utiliser pour créer le fichier ssh dans le dossier courant. Cela ne pose pas de problème tant que vous êtes dans votre dossier personnel ou un de ses sous-dossiers. Ce n'est pas le cas ici, car vous devez créer ce fichier dans un dossier dont vous n'êtes pas propriétaire. Vous devez donc acquérir les droits nécessaires à cette action. C'est ce que permet la commande sudo.
La commande sudo vous donne les droits du super-utilisateur (root). Si vous faites partie des sudoers, la commande qui suit sudo s'exécutera immédiatement. Dans le cas contraire, sudo vous demandera le mot de passe root avant d'exécuter la commande. Ne soyez pas étonné de ne rien voir s'afficher lors de la saisie du mot de passe. Sous GNU-Linux, c'est normal. Comme ça, si quelqu'un filme votre écran depuis l'immeuble d'en face, il ne saura même pas de combien de caractères il se compose. Paranoïa, quand tu nous tiens !!!

naute@debian:~/Bureau$ ls /media/naute
projets musique
naute@debian:~/Bureau$ ls /media/naute
boot musique projets root SETTINGS
naute@debian:~/Bureau$ cd /media/naute/boot
naute@debian:~/media/naute/boot$ sudo touch ssh
naute@debian:~/media/naute/boot$ ▉

puis ls suivi de Entrée pour vérifier la présence du fichier ssh dans la racine de la carte micro-SD.

naute@debian:~/Bureau$ ls /media/naute
projets musique
naute@debian:~/Bureau$ ls /media/naute
boot musique projets root SETTINGS
naute@debian:~/Bureau$ cd /media/naute/boot
naute@debian:~/media/naute/boot$ sudo touch ssh
naute@debian:~/media/naute/boot$ ls
bcm2708-rpi-0-w.dtb       bcm2710-rpi-cm3.dtb  fixup_db.dat      os_config.json
bcm2708-rpi-b.dtb         bootcode.bin         fixup_x.dat       overlays
bcm2708-rpi-b-plus.dtb    cmdline.txt          issue.txt         ssh
bcm2708-rpi-cm.dtb        config.txt           kernel7.img       start_cd.elf
bcm2709-rpi-2-b.dtb       COPYING.linux        kernel.img        start_db.elf
bcm2710-rpi-3-b.dtb       fixup_cd.dat         LICENCE.broadcom  start.elf
bcm2710-rpi-3-b-plus.dtb  fixup.dat            LICENSE.oracle    start_x.elf
naute@debian:/media/naute/boot$ ▉

Le fichier ssh est bien présent (colonne de droite, troisième en partant du haut), mission accomplie. Vous devez à présent démonter la carte micro-SD pour pouvoir la sortir sans risque de son logement.

Vous ne pouvez pas démonter une partition quand vous êtes dedans. On ne coupe pas la branche sur laquelle on est assis. Vous devez donc quitter cette partition, et je vous propose, par exemple, de retourner dans votre dossier personnel. Pour ce faire, saisissez la commande cd suivie de Entrée. Cette commande vous ramènera toujours à la maison, où que vous soyez.

naute@debian:~/Bureau$ ls /media/naute
projets musique
naute@debian:~/Bureau$ ls /media/naute
boot musique projets root SETTINGS
naute@debian:~/Bureau$ cd /media/naute/boot
naute@debian:~/media/naute/boot$ sudo touch ssh
naute@debian:~/media/naute/boot$ ls
bcm2708-rpi-0-w.dtb       bcm2710-rpi-cm3.dtb  fixup_db.dat      os_config.json
bcm2708-rpi-b.dtb         bootcode.bin         fixup_x.dat       overlays
bcm2708-rpi-b-plus.dtb    cmdline.txt          issue.txt         ssh
bcm2708-rpi-cm.dtb        config.txt           kernel7.img       start_cd.elf
bcm2709-rpi-2-b.dtb       COPYING.linux        kernel.img        start_db.elf
bcm2710-rpi-3-b.dtb       fixup_cd.dat         LICENCE.broadcom  start.elf
bcm2710-rpi-3-b-plus.dtb  fixup.dat            LICENSE.oracle    start_x.elf
naute@debian:/media/naute/boot$ cd
naute@debian:~$ ▉

Maintenant que vous êtes dans votre dossier personnel, saisissez la commande sudo umount /media/naute/boot /media/naute/root /media/naute/SETTINGS suivie de Entrée.

Quand vous avez inséré la carte micro-SD dans le lecteur, trois partitions ont été montées, boot, root et SETTINGS. Vous devez donc les démonter toutes les trois avant d'extraire la carte.

naute@debian:~/Bureau$ ls /media/naute
projets musique
naute@debian:~/Bureau$ ls /media/naute
boot musique projets root SETTINGS
naute@debian:~/Bureau$ cd /media/naute/boot
naute@debian:~/media/naute/boot$ sudo touch ssh
naute@debian:~/media/naute/boot$ ls
bcm2708-rpi-0-w.dtb       bcm2710-rpi-cm3.dtb  fixup_db.dat      os_config.json
bcm2708-rpi-b.dtb         bootcode.bin         fixup_x.dat       overlays
bcm2708-rpi-b-plus.dtb    cmdline.txt          issue.txt         ssh
bcm2708-rpi-cm.dtb        config.txt           kernel7.img       start_cd.elf
bcm2709-rpi-2-b.dtb       COPYING.linux        kernel.img        start_db.elf
bcm2710-rpi-3-b.dtb       fixup_cd.dat         LICENCE.broadcom  start.elf
bcm2710-rpi-3-b-plus.dtb  fixup.dat            LICENSE.oracle    start_x.elf
naute@debian:/media/naute/boot$ cd
naute@debian:~$ sudo umount /media/naute/boot /media/naute/root /media/naute/SETTINGS
naute@debian:~$ ▉

Attendez le réaffichage de l'invite de commande (le démontage n'est pas instantané). Voilà qui est fait. Vous pouvez ôter la carte micro-SD de son logement. Le SSH sera activé au prochain démarrage de Raspbian puis le fichier « ssh » sera normalement effacé car devenu inutile.

Inutile, et même dangereux.

Si, pour empêcher toute connexion, vous décidiez de désactiver SSH en passant par raspi-config, le présence de ce fichier le réactiverait à la session suivante sans que vous le sachiez, et quelqu’un pourrait donc se connecter à votre insu, alors que vous pensez la chose impossible.

À partir de maintenant, je considère que vous avez compris le principe : ouvrir un terminal, saisir une commande après le prompt, utiliser sudo et quelques autres commandes, nous n'y reviendrons pas. Je ne décrirais que ce qui sera nouveau.
De plus, pour éviter de trop alourdir le texte, je ne préciserai plus la nécessité d'appuyer sur la touche Entrée du clavier pour valider chaque commande. Quand je vous demanderai de saisir ou d'entrer telle ou telle commande, ce sera toujours suivi implicitement de l'appui sur la touche Entrée, et le terminal affichera directement le résultat de la commande.

VI - Connexion au Raspberry Pi

Votre carte micro-SD est maintenant prête et vous pouvez, si vous voulez, la connecter à votre Raspberry Pi, mais ne démarrez pas celui-ci. Vous avez encore du travail à faire sur le PC.

La connexion du PC au Raspberry Pi se fait à la demande du PC. C’est lui, ou du moins ce sera lui, le client. Quand vous êtes dans un restaurant par exemple, quand vous avez besoin de quelque chose, vous, le client, appelez le serveur. Vous le faites de la voix ou du geste. Le PC, pour cela, a besoin d’un logiciel de connexion en tant que client.

Les dépôts officiels Debian proposent plusieurs logiciels offrant cette fonctionnalité. Mon choix s’est porté sur Vinagre, simple d’emploi et permettant également les connexions VNC, ce dont nous aurons besoin plus tard.

VI-A - Installation de Vinagre

Ouvrez un terminal sur votre PC. Je dis ça par principe, mais si vous avez déjà un terminal ouvert, par exemple celui de la manipulation précédente, vous pouvez bien entendu continuer avec.

naute@debian:~$ ▉

Avant d’installer Vinagre, il peut être intéressant de vérifier qu’il n’est pas déjà installé sur votre distribution. Pour cela, rien de plus simple : saisissez apt-cache policy vinagre dans le terminal. Si vous obtenez ceci :

naute@debian:~$ apt-cache policy vinagre
N: Impossible de trouver le paquet  vinagre
naute@debian:~$ ▉

C’est que Vinagre n’est pas installé et vous pouvez commencer l’installation. Si vous obtenez quelque chose comme :

naute@debian:~$ apt-cache policy vinagre
vinagre:
Installé : 3.22.0-1+b1
Candidat : 3.22.0-1+b1
Table de version :
*** 3.22.0-1+b1 500
500 http://deb.debian.org/debian stretch/main amd64 Packages
100 /var/lib/dpkg/status
naute@debian:~$ ▉

C’est que Vinagre est installé et vous pouvez tout de suite sauter à la section VI.B Connexion SSH.

Il est fortement recommandé, avant d'installer un nouveau logiciel, de réaliser une mise à jour des dépôts. Pour ce faire, saisissez la ligne sudo apt update. Votre terminal va ressembler à ça :

naute@debian:~$ sudo apt update
Ign:1 http://deb.debian.org/debian stretch InRelease
Réception de:2 http://security.debian.org stretch/updates InRelease [94,3 kB]
Réception de:3 http://deb.debian.org/debian stretch-updates InRelease [91,0 kB]
Réception de:4 http://update.devolo.com/linux/apt stable InRelease [2 487 B]
Réception de:5 http://deb.debian.org/debian stretch-backports InRelease [91,8 kB]

…/…

W: http://deb.debian.org/debian/dists/stretch-updates/InRelease: …/….
W: http://deb.debian.org/debian/dists/stretch-backports/InRelease: …/…
W: http://deb.debian.org/debian/dists/stretch/Release.gpg: …/…
naute@debian:~$ ▉

J'ai élagué un peu, car l’affichage de toutes les lignes n'a aucun intérêt ici. Il s'agit juste d'un exemple. Un certain nombre de lignes va donc s'afficher dans le terminal, donnant des indications pour ceux qui savent les décrypter. J'utiliserai la convention …/… pour représenter les lignes affichées lors de l'exécution d'une commande, et dont la lecture n'est pas primordiale. Pour les installations à venir dans ce tutoriel, si vous les faites dans la foulée, il est inutile de refaire un update.

Si on vous annonce des mises à jour à effectuer, vous pouvez les faire maintenant, mais ce n’est pas obligatoire pour la suite du tutoriel. Pensez quand même à les faire régulièrement : c’est une bonne pratique.

La commande à saisir est « sudo apt upgrade ».

Voir Comment rechercher et installer les mises à jour du système Raspbian ?

Saisissez :

naute@debian:~$ sudo apt install vinagre

et n'oubliez pas de répondre « o » quand la question :

naute@debian:~$ sudo apt install vinagre

…/…

Souhaitez-vous continuer ? [O/n] o

vous sera posée, sinon ça risque de durer un bon bout de temps.

naute@debian:~$ sudo apt install vinagre

…/…

Souhaitez-vous continuer ? [O/n] o

…/…

naute@debian:~$

Voilà : c'est fait.

Recherchez maintenant dans le menu de lancement des applications, à la rubrique Internet, une entrée ressemblant à « Visionneur de bureaux distants ». C'est sous ce nom, du moins sur mon système, qu’apparaît Vinagre. Si vous ne trouvez pas, saisissez vinagre dans la zone de recherche puis lancez la recherche sur le PC. Vous pouvez aussi, comme vu plus haut, le lancer depuis un terminal.

Lancez Vinagre.

Vous voici avec un beau Vinagre tout neuf en parfait état de marche. Vous pouvez maintenant fermer la fenêtre si vous voulez ou la laisser ouverte, nous nous en servirons tout à l'heure.

VI-B - Connexion SSH

Si vous n'avez pas encore inséré la carte micro-SD dans votre Raspberry Pi, c'est le moment. Reliez celui-ci à votre réseau et raccordez-le à son alimentation.

La liaison à votre réseau peut être effectuée directement sur la box si celle-ci dispose d'une prise disponible, ou n'importe où sur le réseau (câblé ou CPL) raccordé à la box. Le Raspberry Pi n'a pas besoin d'être à proximité de votre PC, car vous allez l'utiliser à travers le réseau, c'est l'objet de ce tutoriel.

Le Raspberry Pi ne dispose pas de commutateur de mise sous tension. Certaines alimentations, c’est le cas de la mienne, sont dotées d’un interrupteur, ce qui est bien pratique. Si ce n’est pas votre cas, le fait de raccorder simplement le Raspberry Pi à son alimentation le fait démarrer.

Le lancement du système prend un certain temps, et même si ce n'est pas Windows (ce n'est pas une critique mais juste une constatation), ce n'est pas non plus immédiat. Le problème est que vous n'avez pas d'écran pour suivre le déroulement des opérations de chargement de l'OS, car vous n’êtes pas encore connecté, et que vous ne pouvez pas vous connecter avant que l'OS soit chargé. Donc, ne vous impatientez pas. Attendez que les petites lumières cessent de clignoter.

À titre indicatif, le mien met à peu près 45 secondes pour démarrer.

VI-B-1 - Adresse IP du Raspberry Pi

Votre Raspberry Pi a démarré, le système d’exploitation est lancé et, à priori, opérationnel, mais il semble toujours aussi isolé du monde que s’il était éteint. Eh bien, pas tout à fait. Pas du tout même, en fait. Grâce à la connexion Ethernet, la box l’a repéré et son serveur DHCP lui a attribué une adresse IP. Donc maintenant, il est joignable.

En effet, SSH n’a besoin que d’une chose, en dehors d’un mot de passe, pour établir une connexion vers votre Raspberry Pi sur le réseau : connaître son adresse IP. Cette adresse vient d’être attribuée par le serveur DHCP de votre box et il vous suffit donc d’interroger celle-ci, pour la connaître.

Cela impose, par contre, que vous connaissiez l’adresse de votre box sur le réseau. Pour ça, il n'y a pas de miracle : il vous faudra consulter sa documentation. Pour donner un exemple, ma box est une box Orange, et son adresse est, comme pour toutes les box(s) Orange 192.168.1.1 par défaut. Dorénavant, j'utiliserai les adresses qui correspondent à ma configuration. Vous adapterez bien entendu les données à votre propre cas.

À partir de là, vous avez deux options pour récupérer l'adresse du Raspberry Pi.

- Interroger directement la box en saisissant son adresse dans la zone adéquate de votre navigateur. Il vous sera, en général, demandé un mot de passe pour accéder à son utilitaire de gestion. À partir de là, ça dépend de votre box et je ne peux pas vous aider.

- Employer l'utilitaire nmap, qui va se charger de scanner le réseau.

L'avantage de la seconde solution est qu'elle est totalement indépendante du routeur, et que je vais donc pouvoir vous la décrire. De plus, elle est très simple.

Toujours sur le PC, ouvrez un terminal et saisissez :

naute@debian:~$ nmap -sP 192.168.1.1/24

Brève explication sur cette commande.

La structure de cette commande est :

nmap option paramètre1 paramètre2

- nmap invoque la commande en elle même.

- Option : l’option -sP indique à nmap qu’il doit scanner le réseau spécifié par paramètre1 en envoyant un ping vers toutes les adresses spécifiées par paramètre2

- Paramètre1 : ce paramètre, une adresse IP, permet de spécifier à nmap sur quel réseau il doit travailler, et pour cela, doit être une adresse IP valide de ce réseau. L’adresse IP valide de votre réseau la plus évidente est celle de votre Box, fournie par votre FAI. C’est donc celle que je vous conseille de saisir.

- Paramètre2 : le paramètre /X indique le nombre d’adresses à scanner dans le réseau déterminé par le paramètre1. Ce nombre est égal à 232-X (X puissance 32-X) avec X variant de 1 à 32. Comme ici vous devez scanner les 256 adresses valides de votre réseau, cela donne 2^8 et donc X=32-8=24.

Pour plus de détails, vous pouvez consulter la FAQ Réseaux et plus particulièrement Que signifie la notation/24 pour une adresse IP ?.

Si, par hasard, vous vous retrouviez devant ça :

naute@debian:~$ nmap -sP 192.168.1.1/24
bash: nmap : commande introuvable
naute@debian:~$

Pas de panique : cela veut dire que nmap n'est pas installé sur votre système, mais on va remédier à ça tout de suite. Saisissez sudo apt install nmap dans le terminal :

naute@debian:~$ nmap -sP 192.168.1.1/24
bash: nmap : commande introuvable
naute@debian:~$ sudo apt install nmap

et laissez se dérouler l'installation comme pour Vinagre (en n’oubliant pas de répondre o à la question).

Bon ! Maintenant que nmap est installé, revenons au début de cet intermède et saisissez nmap ‑sP 192.168.1.1/24 à nouveau.

Vous allez obtenir quelque chose comme :

naute@debian:~$ nmap -sP 192.168.1.1/24

Starting Nmap 7.40 ( https://nmap.org ) at 2018-08-19 16:30 CEST
Nmap scan report for livebox.home (192.168.1.1)
Host is up (0.011s latency).
…/…
Nmap scan report for debian.home (192.168.1.21)
Host is up (0.000096s latency).
…/…
Nmap scan report for Raspberry Pi.home (192.168.1.28)
Host is up (0.025s latency).
…/…
Nmap done: 256 IP addresses (8 hosts up) scanned in 2.39 seconds
naute@debian:~$

Petite explication.
La dernière ligne vous indique que nmap a scanné 256 adresses IP, a trouvé 8 hôtes, et tout ça en 2,39 secondes. Vous avez la liste et l'adresse IP de tous les matériels connectés au réseau. Je n'ai laissé que ceux qui pouvaient être intéressants ici pour l'exemple, à savoir livebox.home, mon routeur, debian.home, le PC sur lequel j'écris ce tutoriel, et Raspberry Pi.home, l'objet de notre attention. Vous devriez donc y trouver l'adresse de votre Raspberry Pi, laquelle est écrite en clair.

Si vous n'êtes pas sûr de repérer la bonne adresse, par exemple si un autre Raspberry Pi est déjà connecté, notez toutes les adresses présentes puis déconnectez le Raspberry Pi du réseau (ne l'éteignez pas, ça n'a aucun intérêt). Relancez la commande nmap précédemment utilisée. L'adresse disparue est celle de votre Raspberry Pi. Vous n'avez plus qu'à le reconnecter.

Patientez un peu avant de lancer nmap pour que la déconnexion soit bien prise en compte par le routeur. Si toutefois la liste des appareils connectés n’a pas changé, recommencez la manipulation. Vous pouvez la faire tant de fois que vous voulez, ça ne tire pas à conséquence.

N'oubliez pas, bien entendu, de noter l'adresse en question, sinon, vous venez de travailler pour rien : ici, c'est 192.168.1.28.

VI-B-2 - Connexion SSH avec Vinagre

Affichez à nouveau la fenêtre d’accueil de Vinagre, si vous l'avez laissée ouverte, ou relancez Vinagre dans le cas contraire.

Cliquez sur « Se connecter » :

La fenêtre de dialogue suivante s'ouvre. Normalement, à la première utilisation, le protocole sélectionné est SSH et c'est très bien puisque c'est lui que vous allez utiliser dans un premier temps. Lors des prochains lancements de Vinagre, la fenêtre de dialogue s'ouvrira sur le protocole en cours lors de sa fermeture. Si jamais SSH n'était pas sélectionné, faites défiler la liste et sélectionnez-le.

Dans la zone de saisie intitulée Hôte, saisissez l'adresse IP de votre Raspberry Pi, celle que vous venez de déterminer avec nmap.

Dans la zone de saisie intitulée Utilisateur, si vous avez gardé le nom d'utilisateur proposé d'origine avec la carte, c'est-à-dire pi, saisissez-le, sinon saisissez celui que vous avez choisi. (Voir Quel est le nom d'utilisateur et le mot de passe par défaut du Raspberry Pi ?)

Voici ce que ça donne dans ma configuration :

Cliquez sur le bouton « Se connecter » de la fenêtre de dialogue. À la première tentative de connexion, la fenêtre suivante s'ouvre :

Répondez « yes » en toutes lettres à la question posée. La connexion est alors fermée. Reconnectez-vous comme vous venez de le faire. Cette fois-ci, vous êtes dans la procédure standard et on vous demande alors un mot de passe. Si vous ne l'avez pas changé, c'est raspberry, sinon, vous le connaissez mieux que moi.

Important.
Vous venez de vous connecter avec le protocole SSH qui permet de créer un tunnel sécurisé entre le client et le serveur. Pour rester cohérent, au niveau sécurité, garder le mot de passe « raspberry », que tout le monde connaît, est absurde. Si vous n’avez pas encore changé ce mot de passe, je vous invite à le faire maintenant, avant que quelqu’un d’autre le fasse pour vous, en procédant comme suit.

Dans le shell que vous venez d’ouvrir sur Raspberry Pi, saisissez :

ip@Raspberry Pi:~ $ passwd
Changement du mot de passe pour pi.
Mot de passe UNIX (actuel) :

Entrez le mot de passe « raspberry » :

ip@Raspberry Pi:~ $ passwd
Changement du mot de passe pour pi.
Mot de passe UNIX (actuel) :
Entrez le nouveau mot de passe UNIX :

Entrez votre nouveau mot de passe.

ip@Raspberry Pi:~ $ passwd
Changement du mot de passe pour pi.
Mot de passe UNIX (actuel) :
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :

Confirmez le nouveau mot de passe : c’est fait.

Vous êtes maintenant sur le Raspberry Pi. La fenêtre de Vinagre est l’écran de votre Raspberry Pi, et tant que vous serez sur cette fenêtre, c’est-à-dire tant qu’elle sera active, le clavier et la souris seront ceux du Raspberry Pi. L’écran qui vous est proposé correspond à un écran de login, avec la classique demande de mot de passe.

Vous basculez du Raspberry Pi au PC simplement en quittant cette fenêtre ou en la sélectionnant. Pour ceux qui ont l’habitude des machines virtuelles, c’est un peu la même chose sauf qu’ici, la capture n’est pas automatique : Elle nécessite de sélectionner explicitement la fenêtre en cliquant dessus ou de la quitter en cliquant ailleurs, sur le bureau du PC par exemple.

Ne fermez pas cette fenêtre avec le menu système ou en quittant Vinagre.

Pour arrêter le système proprement, tapez sudo halt et attendez que les LED cessent de clignoter sur votre carte (minimum 15 secondes), votre Raspberry Pi est alors arrêté. Vous pouvez ensuite quitter Vinagre et déconnecter votre Raspberry Pi comme bon vous semble.

Ne laissez pas votre Raspberry Pi alimenté après avoir arrêté le système. Cela n’a aucun intérêt car de toute manière, vous ne pourrez le redémarrer qu’en rebranchant l’alimentation. Par contre, à l’utilisation, il peut, si nécessaire, être alimenté en permanence sans souci.

Vous voilà connecté en SSH, dans un shell pleinement fonctionnel. Si votre utilisation, par exemple, consiste uniquement à programmer les broches GPIO en Python et que vous êtes à l'aise avec les éditeurs en ligne de commande, vous pouvez vous arrêter là.

Comme vu plus haut, en ce qui concerne le mot de passe, les caractères saisis ne s’affichent pas, mais c’est normal dans l’univers GNU-Linux.

Maintenant que le PC est connecté en tant que client au serveur Raspberry Pi, j’y ferai référence en le nommant client, et au Raspberry Pi en le nommant serveur.

Vous pouvez bien sûr redimensionner cette fenêtre.

Il y a un bouton dans la barre d'outils pour passer en plein écran. Personnellement, j'évite de m'en servir car sur ma version, la 3.22, un petit bug fait qu'on ne peut pas sortir de ce mode, et c'est assez gênant. Je me contente donc de la redimensionner en passant par le menu système.

Vous pouvez maintenant utiliser ce shell comme bon vous semble. Tout ce que vous y ferez ne concernera que le serveur, et vous pourrez y faire tout ce que vous faites habituellement sur un PC classique, y compris, bien sûr, installer de nouveaux programmes, et c'est une chose que nous allons expérimenter tout de suite dans le chapitre suivant si vous voulez profiter du bureau.

VI-C - Connexion VNC

En ce qui concerne la connexion VNC, je décris, dans ce tutoriel, l’installation et l’utilisation du logiciel serveur de bureau distant que j’utilise, à savoir ThightVncServer.

Comme annoncé plus haut, les dernières versions de Raspbian fournissent un autre logiciel serveur de bureau distant, RealVNC. Si vous préférez utiliser celui-là, il vous suffit de l’activer.

Ne l’ayant jamais utilisé, je ne pourrai pas vous décrire l’utilisation de RealVNC, mais il n’y a pas de raison pour que vous rencontriez des difficultés. Au cas improbable où vous rencontreriez des problèmes dans l’utilisation de Vinagre, vous devrez peut-être installer un autre viewer. Dans ce cas, le meilleur conseil que je puisse vous donner est d’installer RealVNC viewer, qui, lui, fonctionnera forcément.

Comme promis, voici le cheminement à suivre. Saisissez sudo raspi-config dans le shell ouvert sur le serveur et laissez-vous guider :

Déplacez-vous vers Interfacing Options à l’aide de la touche ↓ :

Cliquez sur Entrée :

Déplacez-vous vers VNC à l’aide de la touche  :

Cliquez sur Entrez.

Déplacez-vous vers <Oui> à l’aide de la touche  :

Cliquez sur Entrée. RealVNC est à présent activé sur le serveur.

VI-C-1 - Installation de TightVncServer

Si vous venez d’activer RealVNC, vous pouvez sauter cette section. Elle ne vous concerne pas.

L'installation de TightVncServer va se dérouler exactement de la même manière que celles de Vinagre et de nmap, à cette différence près que maintenant, vous allez travailler sur le serveur et pas sur le client. Vous allez donc, classiquement, commencer par mettre le serveur à jour.

Comme toutes ces opérations en ligne de commande ont été détaillées dans les chapitres précédents, je pense que vous êtes capables de les mener à terme sans explications superflues. Voici donc le déroulement en images.

Je rappelle à toutes fins utiles que le serveur est le Raspberry Pi et que le client est le PC.

Entrez sudo apt update.

Entrez sudo apt upgrade.

Répondez o ou O à la question posée.

Le système du serveur est à jour.

Procédez maintenant à la dernière installation de ce tutoriel : celle de TightVncServer, en images également.

Saisissez sudo apt install tightvncserver.

Répondez « o » ou « O » à la question posée.

Voila qui est fait. Pas compliqué, la ligne de commande, finalement. Enfin, pour les utilisations standard du moins, ne rêvons pas. Comme vous pouvez constater, quand il n’y a plus besoin d’explication, ça va beaucoup plus vite.

VI-C-2 - Lancement de TightVncServer

Contrairement à SSH qui est lancé automatiquement au démarrage du système, le lancement de TightVncServer doit être effectué explicitement à chaque demande de connexion VNC.

Dans le shell ouvert sur le serveur par SSH, saisissez vncserver.

Au premier lancement de « vncserver », on vous demande de créer un mot de passe pour accéder à votre bureau. Aux lancements suivants, on vous demandera de le saisir.

Attention : le mot de passe est limité à 8 caractères.

Saisissez le mot de passe de votre choix puis, quand Verify s’affiche, saisissez-le à nouveau pour confirmer.

Répondez n à la question suivante, sauf si vous désirez créer également un accès en lecture seule, ce qui, à mon avis, présente peu d’intérêt pour ce genre de configuration.

La ligne qui va vous intéresser au plus haut point ici est la ligne « New 'X' desktop is raspberrypi:1 ». En effet, elle vous donne l'identifiant avec lequel vous allez pouvoir vous connecter à votre bureau, à savoir raspberrypi:1 dans notre exemple. Ça pourra être raspberrypi:2, raspberrypi:3, etc. en fonction d’autres éventuelles connexions déjà en cours.

VI-C-3 - Connexion VNC avec Vinagre

Comme pour vous connecter avec SSH, cliquez sur « Se connecter » en haut à gauche de la fenêtre Vinagre.

Puis effectuez les actions suivantes :

Déroulez la liste Protocole et cliquez sur VNC.

Saisissez l'identifiant de connexion qui a été déterminé au chapitre précédent, à savoir raspberrypi:1 puis cliquez sur « Se connecter ».

Saisissez le mot de passe de 8 caractères maximum que vous avez créé au chapitre précédent puis cliquez sur « S'authentifier ».

Le bureau s'affiche enfin, signe que tout s'est bien passé.

Il est maintenant judicieux de redimensionner la fenêtre. Dans le cadre d'une utilisation normale, la fenêtre de Vinagre occupe par défaut tout l'écran au lancement. Pour des raisons d'encombrement, j'ai capturé des fenêtres réduites pour le tutoriel.

L'écran d'accueil que vous aurez différera sensiblement de celui que je vous propose dans la mesure où j'ai déjà effectué des modifications dans le paramétrage de ma machine, mais vous allez pouvoir vous-même modifier vos paramètres comme bon vous semblera. Toutefois, si l’interface graphique fournie avec Raspbian vous semble par trop succincte, n’espérez pas pouvoir installer une Gnome3 ou une KDE. L’installation se passera probablement bien, mais l’utilisation risque de sérieusement vous attaquer les nerfs. Raspberry Pi n’est pas assez puissant pour faire tourner correctement ces bureaux.

VII - Pour aller plus loin

J'ai décrit ici les étapes à suivre vous permettant de connecter, à l'aide d'une liaison Ethernet, votre PC à votre Raspberry Pi, pour pouvoir vous passer sur celui-ci des périphériques de saisie et d'affichage, ceux-ci étant « prêtés » par votre PC. Si votre routeur fournit un point d'accès Wi-Fi et que votre Raspberry Pi dispose également d'une connectivité Wi-Fi, vous pouvez maintenant configurer cette connexion de manière classique depuis votre bureau.

Il est conseillé de passer les adresses IP Ethernet et/ou Wi-Fi de votre Raspberry Pi en IP fixes. Ce n'est pas obligatoire, mais cela permet d'éviter le désagrément d'un changement d'adresse IP décidé par le serveur DHCP de votre box, et qui vous obligerait à créer une nouvelle connexion. C'est rare mais ça peut arriver. Pour cela, le plus simple est d'aller faire un tour dans l'utilitaire de gestion de la box. Vous devrez donc consulter le mode d'emploi de celle-ci. Par exemple sur la LiveBox :

1. Connectez-vous en saisissant 192,168,1,1 dans la barre d'adresse du navigateur ;

2. Entrez votre mot de passe ;

3. Ouvrez l'onglet « Configuration avancée » ;

4. Dans le tableau « Baux DHCP statiques », sélectionnez dans la liste déroulante l'adresse que vous voulez passer en IP Fixe ;

5. Cliquez sur « Ajouter ».

La machine sera reconnue grâce à son adresse MAC et la même adresse IP lui sera toujours affectée. Ce n'est pas très compliqué et j'imagine que les autres routeurs offrent des procédures similaires.

Vous pouvez également le faire directement depuis votre Raspberry Pi :

Attention avec cette technique.

Elle rend votre Raspberry Pi peu déplaçable. En effet, il est tout à fait possible, et même probable, que l’adresse IP choisie pour votre Raspberry Pi et l’adresse du routeur soient incompatibles avec un autre réseau. Si le matériel qui embarque votre Raspberry Pi est voué à se déplacer, restez en adresse IP dynamique. C’est plus prudent.

Vous devez d’abord vérifier sur votre box quels sont les matériels LAN (réseau Ethernet câblé) disposant d’une adresse IP fixe s’il y en a (il y a au moins la box), et ceux disposant d’une adresse dynamique, il y en a forcément au moins deux : votre PC et votre Raspberry Pi. Choisissez une adresse IP différente des adresses IP fixes et dynamiques existantes pour éviter tout conflit. Par principe, pour éviter d’encombrer la zone DHCP avec des adresses fixes, il est préférable, quand on alloue soi-même une adresse IP fixe, de la choisir en dehors de cette plage. Par exemple, dans le cas de ma LiveBox, la zone DHCP s’étendant de 192.168.1.10 à 192.168.1.150, je choisirai préférentiellement une adresse située à partir de 192.168.1.151, disons 192.168.1.160. Les trois premiers groupes de chiffres doivent être identiques à ceux des autres matériels. Seul le quatrième groupe différencie les matériels connectés.

Une fois que c’est fait, ouvrez un shell sur votre RasperryPi et saisissez ls /sys/class/net/. Vous allez obtenir quelque chose qui ressemble à ça :

Le nom de votre interface réseau LAN est « eth0 ».

Saisissez à présent sudo nano /etc/dhcpcd.conf et faites défiler l’affichage jusqu’à avoir quelque chose comme ça :

La partie sur laquelle vous allez intervenir est :

# Example static IP configuration
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caee:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1

Vous pouvez constater que ces lignes commencent toutes par le caractère # qui symbolise les commentaires. Cela signifie qu’elles ne seront pas interprétées.

La première ligne est réellement un commentaire et vous n’allez pas y toucher. La quatrième ligne concerne IPv6 et vous n’y toucherez pas non plus.

Vous allez donc « dé-commenter » les lignes 2, 3, 5 et 6 en enlevant le caractère # qui les commence puis les modifier comme suit :

# Example static IP configuration
interface eth0
static ip_address=192.168.1.50/24
#static ip6_address=fd51:42f8:caee:d92e::ff/64
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8

En n’oubliant pas de remplacer les deux occurrences de 192.168.1.1 par l’adresse de votre routeur, qui peut d’ailleurs être la même, et 192.168.1.50 par l’IP fixe que vous aurez choisie.

La ligne « interface eth0 » n’a pas besoin d’être modifiée, car le nom de l’interface LAN proposé dans l’exemple est le bon (voir plus haut).

Vous devriez obtenir ceci :

Faites « Ctrl X » et répondez « o » à la question qui vous sera posée. La modification est sauvegardée. Pour que les changements soient pris en compte, vous devez redémarrer votre machine, par exemple avec un sudo reboot.

Si ça ne fonctionne pas, dans certains cas la dernière ligne peut en être responsable. Essayez en la modifiant comme suit :

static domain_name_servers=8.8.8.8 8.8.4.4

VIII - Résumé

Maintenant que les logiciels sont installés et paramétrés, la connexion sera beaucoup plus rapide. Voici un résumé en image de la marche à suivre pour vous connecter :

Lancez Vinagre.

Cliquez sur « Se connecter ».

Remplir les champs comme vous l'avez fait plus haut et cliquez sur « Se connecter ».

Saisissez votre mot de passe root (celui du serveur, pas du client, on est bien d’accord).

La liaison SSH est établie et le shell est opérationnel.

Pour ouvrir un bureau distant, saisissez vncserver dans le shell. vncserver vous fournit votre identifiant de connexion, ici raspberrypi:1. Cliquez à nouveau sur « Se connecter » :

Choisissez le protocole VNC.

Cliquez sur « Se connecter ».

Saisissez votre mot de passe de connexion VNC, celui qui ne doit pas dépasser 8 caractères et que vous avez créé, puis cliquez sur « S'authentifier ».

Vous voilà sur votre bureau. Vous pouvez commencer à travailler.

Amusez-vous bien !

IX - Remerciements

Je remercie f-leb ainsi que Chrtophe pour leur relecture technique.

Je remercie f-leb pour sa relecture orthographique.

Je remercie également Laethy qui m'a assisté pour la réalisation de ce tutoriel.