====== sshfs : partage de fichiers sécurisé ======
* Objet : Comment partager des fichiers simplement, efficacement et de manière sécurisée
* Niveau requis : {{tag>débutant avisé}}
* Commentaires : Avoir un accès sur un serveur ssh
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-)
* Suivi : {{tag>à-compléter à-tester}}
* Création par [[user>smolski]] le 19/04/2010
* Testé par kawer en 2018
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2190 | ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
Sshfs est un outil permettant d'utiliser le protocole [[:doc:reseau:ssh|ssh]] comme un système de fichiers et ainsi monter un répertoire distant à travers le protocole [[:doc:reseau:ssh|ssh]]. \\
Alors que [[:doc:reseau:ssh|ssh]] s'utilise en ligne de commande, sshfs permet d'utiliser n'importe quel gestionnaire de fichiers de manière transparente. \\
Cet outil permet ainsi d'allier sécurité et facilité d'emploi pour les utilisateurs.
===== Installation côté serveur =====
Il suffit d'avoir un [[doc:reseau:ssh:serveur|serveur ssh]] fonctionnel
===== Installation côté client =====
Note : Les paquets "openssh-client" et "fuse-utils" sont requis, mais il sont déjà installés par défaut sous Debian depuis 2009.
Installer simplement sshfs
apt-get update && apt-get install sshfs
===== Test rapide =====
Sur le système client, créer un répertoire dans lequel va être monté le système de fichiers :
mkdir /home/utilisateur/Test
Monter un répertoire distant (ici ~/Public):
sshfs utilisateur@ip_distante:/home/utilisateur/Public /home/utilisateur/Test
Le mot de passe de l'utilisateur est alors demandé.
Ouvrir Nautilus (ou n'importe quel gestionnaire de fichiers) pour accèder à vos fichiers distants. :-)
Enfin, penser à démonter :
fusermount -u /home/utilisateur/Test
Prochaine étape : améliorer la sécurité par l'utilisation d'une clé de chiffrement.
===== Sécurisation =====
Voir [[doc:reseau:ssh:serveur#securisation|Sécurisation d'un serveur SSH]]
===== Problèmes fréquents =====
* **Le montage n'est pas possible à cause des droits d'accès aux répertoires.** \\
Il suffit alors de vérifier (ls -hl) et d'ajouter les droits (chmod(([[doc:systeme:chmod|chmod]])) ug+r...) au répertoire local (Public dans l'exemple) et au répertoire distant sur le serveur (Test dans l'exemple).
* **L'utilisateur n'a pas le droit de monter un système de fichier avec Fuse.** \\
Il faut ajouter l'utilisateur au groupe fuse.
adduser votre-utilisateur fuse
Puis, il faut redémarrer la session utilisateur
* **Le firewall n'a pas été correctement paramétré.** \\
Vérifier que le port utilisé est bien ouvert sur le serveur. \\
Il n'y a rien à faire côté client.
===== Automatiser la connexion =====
==== Montage manuel ====
Créer un petit fichier script dans lequel on écrit simplement la ligne de commande :
#!/bin/bash
sshfs utilisateur@ip_distante:/chemin/du/partage
en adaptant le //chemin/du/partage// évidemment ;-)
On pourra alors créer une icône pour lancer ce script. L'utilisateur n'aura plus qu'à cliquer sur l'icône, une fenêtre graphique lui demandera la phrase de passe de la clé, et le répertoire distant apparaîtra alors sur le bureau. \\
De la même façon, on pourra créer une icône pour démonter le répertoire. \\
* Avantage : c'est simple.
* Inconvénient : aucun message d'erreur n'est renvoyé en cas de problème.
==== Montage automatique par /etc/fstab ====
Automatiser complètement le montage en ajoutant une ligne au fichier /etc/fstab :
sshfs#utilisateur@192.168.0.1:Public Test fuse uid=1003,gid=100,umask=0,allow_other 0 0
Principal inconvénient : si le réseau n'est pas encore disponible au démarrage (c'est souvent le cas en wifi), le montage automatique ne se fera pas. :-(
**Approfondissements dans /etc/fstab**
utilisateur@hote:/repertoire/distant/ /repertoire/local/ fuse.sshfs [port=PORT],umask=0,defaults,noauto,user,uid=[UID],gid=[GID],noatime,allow_other,_netdev 0 0
* L'ajout de _netdev permet d'attendre que le réseau soit monté avant de monter le répertoire distant. \\
* noauto le point de montage sera visible dans Nautilus par exemple, mais pas encore monté réellement (le montage pourra alors être effectif "au clic")
* Pour un peu plus de souplesse, ajouter la directive user_allow_other au fichier /etc/fuse.conf \\
==== Montage automatique par autofs ====
TODO
===== Performances et qualité de service =====
sshfs (tout comme ssh) est très fiable et les retours d'expérience négatifs semblent être rares.
Les débits obtenus dépendent principalement des performances du réseau utilisé. Il est ainsi possible d'atteindre plusieurs centaines de mégabits par seconde. \\
Même avec des machines vieillissantes, le chiffrement des données ralenti peu les échanges.