Sshfs

De Justine's wiki
Aller à la navigation Aller à la recherche

Sources

Présentation

SSHFS est un filesystem basé sur FUSE (Filesystem in UserSpacE) permettant de monter des dossier distants en local via une connection SSH.

Il est dispo sur la plupart des distributions et peut être installé assez facilement (via apt, pacman, etc).

Il est assez facile à invoquer:

sshfs [user@]host:[dir] mountpoint [options]
#Par ex.
sshfs 192.168.1.200:/home/justine/sshfs ./montage

Si il n'est pas spécifié, le chemin distant donne sur le home.

On peut ensuite démonter le dossier avec umount; le wiki arch donne la commande :

 fusermount3 -u mountpoint

Usage et performances

Mon idée était simplement d'utiliser sshfs lors d'opérations d'administration (pour transférer des certificats par exemple), et non pas comme alternative à NFS ou SMB. Cependant, je me usis posé la question des performances, et je ne suis pas la seule. Cet article donne un bon aperçu des performances, SSHFS est étonnament performant et comparable à NFS à chiffrement égal. SMB est dans le bas du panier !

On peut donc envisager de l'utiliser de façon plus performantes. Le wiki Arch donne une méthode à l'aide de systemd.

Options

Quelques options utiles:

  • -f : garder le process à l'avant plan (l'inverse du -d de docker compose)
  • -C : activer la compression
  • -F <chemin> : passer le chemin d'un fichier de config ssh
  • -o reconnect: reconnection automatique au serveur
  • -o idmap=user : traduire automatiquement les UID/GID des users locaux et distants

Un gestionnaire de profils pour sshfs

Ce script permet d'avoir différents profils montable à la volée.

Il suffit de l'avoir dans le PATH, et de le lancer une première fois pour répondre à ses questions pour qu'il génère son fichier de conf. Ensuite, on peut éditer le fichier de conf avec sshmnt -e pour créer les différents profils. L'example donné est assez clair :

#Example:
# location=name:login=username:ip=address:port=22:path=/basepath/of/mount:mntopts=uid=99,gid=99: