Faciliter les développement Pi avec SSHFS

Si vous utilisez MAC ou Linux, vous serez ravit d'apprendre qu'il est possible de monter un système de fichier au travers d'une connexion SSH.




Grâce à SSHFS il est possible de développer une application sur Pi depuis son PC en utilisant son éditeur favoris.

Les fichiers sont manipulés depuis le PC alors qu'ils sont stockés sur le Pi... le tout par l'intermédiaire d'une connexion SSH (Secure Shell).

C'est absolument fabuleux! SSHFS + une session SSH c'est vraiment le rêve.

Activer SSH sur le Pi
Avant tout, il faut activer SSH sur le Raspberry-Pi ( cela se fait par l'intermédiaire de raspi-config ).

Installer SSHFS
Nous sommes utilisateurs de Linux Mint (dérivé d'Ubuntu) sur nos PC.

SSHFS repose sur FUSE (Filesystem in USEr space), ce dernier est normalement disponible sur les systèmes récents. Si ce n'est pas le cas, vous pouvez consulter cet article sur ubunt-fr.org.

Pour installer SSHFS sur Linux Mint
  • sudo apt-get install sshfs
Monter le système de fichier SSHFS
Admettons que l'on désire monter la racine du système de fichier d'un Raspberry-Pi nommé pythonic.local dans le répertoire pythonicfs du répertoire utilisateur.

Il est important de monter le système de fichier dans le répertoire utilisateur sur PC ( /home/utilisateur )!  Monter le système de fichier dans /mnt conduira immanquablement à des problèmes.
Voici les différentes commandes saisies sur notre Linux Mint :

cd ~
mkdir pythonicfs
sshfs -o idmap=user pi@pythonic.local:/ pythonicfs

Une fois la commande exécuté (et le mot de passe utilisateur saisi), il suffit de ce déplacer dans le répertoire pythonicfs (cd pythonicfs) pour vous rendre compte que vous êtes en fait dans le répertoire racine du Raspberry-Pi pythonic.local ! C'est trop de la balle :-)

La syntaxe de sshfs est:

sshfs [options] user@distant_computer:folder_on_remote local_folder

  • user est l'utilisateur sur l'ordinateur distant (utilisateur pi).
  • distant_computer est l'ordinateur distant (sur Raspberry-Pi).
  • folder_on_remote est le répertoire monté sur l'ordinateur distant (la racine dans notre cas, donc / mais cela aurait put être /home/pi ).
  • local_folder est le répertoire local où sera monté le système de fichier sshfs. Dans notre cas, le répertoire pythonicfs dans le répertoire utilisateur (puisque nous avons fait un cd ~)
Vous trouverez également de nombreuses informations et options sur l'article sshfs d'ubuntu-fr.org

Démonter le système de fichier
Il suffit de saisir la commande:
fusermount -u pythonicfs

Un petit inconvénient
Un petit inconvénient quand même. La système de fichier sshfs est automatiquement démonté lorsque la session ssh expire (comme pour une session normal lorsque rien n'est saisi pendant plusieurs heures).

Mais ce n'est pas un vrai problème, il suffit de ressaisir la commande sshfs et il est de nouveau possible de sauver les fichiers ouverts.

Support de SSHFS sur Ubuntu/Linux Mint
Mr Orleans nous faisait remarquer, à juste titre, que certaines distributions Linux prennent également SSHFS en charge depuis le navigateur de fichier (comme Caja sous Linux Mint) via le point de menu "Fichier | se connecter à un serveur..."
Caja (navigateur de fichier sous Linux Mint)
Fenêtre affiché lors par le menu "se connecter sur un serveur..."
Connexion de type SSH --> donc un montage SSHFS :-)