ssh - Montage d'un système de fichiers distant via sshfs

sshfs est un programme de montage de système de fichier distant basé sur ssh. Coté serveur, il est intégré à ssh et ne nécessite donc pas l'installation de paquet ou configuration supplémentaire. Coté client, il utilise gvfs-fuse pour le montage du système de fichier virtuel.

Le système de fichier distant peut-être monté et utilisé comme un système de fichier "réél"

1 - Installation

1.1 - Préalable

serveur$ systemctl status ssh |grep Active
Active: active (running) since Wed 2017-08-16 10:19:34 CEST; 15min ago
client$ ping -c5 eepc |grep "packet loss"
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
client$ nmap -p22 eepc |grep ssh
22/tcp open ssh
client$ ssh philippe@eepc
philippe@eepc's password:

Note : l'authentification par clés peut également être utilisée

1.2 - Installation du client

# apt install sshfs
$ sshfs -V
SSHFS version 2.8
FUSE library version: 2.9.7
fusermount version: 2.9.7
using FUSE kernel interface version 7.19
$ tail -3 /etc/fuse.conf 
# Allow non-root users to specify the allow_other or allow_root mount options.
# décommenter la ligne suivante pour pouvoir monter en tant qu'utilisateur
user_allow_other

2 - Montage du système de fichier

2.1 - Montage en ligne de commande

# mkdir /media/<nom_utilisateur>/eepc
# chown -R <nom_utilisateur>:<nom_utilisateur> /media/<nom_utilisateur>/eepc
$ sshfs user@adresse:/chemin_sysfs_distant /chemin_point_montage_local -p port -C
$ sshfs <nom_utilisateur>@debian:/home/<nom_utilisateur>/Document /media/<nom_utilisateur>/eepc -C
user@debian's password:
$ sshfs <nom_utilisateur>@debian: /media/<nom_utilisateur>/eepc -C

2.2 - Déconnexion

La déconnexion nécessite l'utilisation de fusermount :

$ fusermount -u /chemin_point_montage_local

soit, avec l'exemple précédent

$ fusermount -u ~/media/<nom_utilisateur>/eepc

2.3 - Montage automatique

2.3.1 Modification de la table de montage

$ cat /etc/fstab |grep sshfs
# Montage sshfs du /home/philippe de eepc sur /media/philippe/eepc
philippe@eepc:/home/philippe /media/philippe/eepc fuse.sshfs rw,user,noauto,_netdev,uid=1000,gid=1000,port=22,allow_other,reconnect,transform_symlinks,BatchMode=yes 0 0

pour un montage

2.3.2 Utilisation

$ mount /media/philippe/eepc

soit le gestionnaire de fichier, thunar dans le cas du bureau Xfce4

$ umount /media/philippe/eepc

soit le gestionnaire de fichier