Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ceci est une ancienne révision du document !
Comment partager des fichiers simplement, efficacement et de manière sécurisée.
Sshfs est un outil permettant d'utiliser le protocole ssh comme un système de fichiers et ainsi monter un répertoire distant à travers le protocole ssh.
Alors que 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.
Les pages de référence pour débuter l'utilisation du terminal :
Installer openssh-server
# apt-get install openssh-server
Démarrer maintenant le démon ssh :
# /etc/init.d/ssh start
Le serveur est fonctionnel.
Cela étant, chaque client qui voudra se connecter au serveur devra avoir un compte d'utilisateur sur le serveur.
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 install sshfs
Voir aussi :
SSHFS
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.
L'authentification par simple mot de passe n'est pas infaillible, car ce dernier peut être découvert puis utilisé. Malgré tout, cela reste relativement fiable, car, bien sûr, le mot de passe est transmis chiffré.
Par contre, l'utilisation d'une clé de chiffrement, elle-même protégée par une phrase de passe, renforce largement la sécurisation.
En effet, pour se connecter, il faut alors :
Un utilisateur :
Avec cette clé, le serveur peut alors chiffrer les données qu'il renvoie au client, ce dernier pouvant déchiffrer les données avec sa clé privée.
Sur le client, chaque utilisateur qui souhaite se connecter doit créer un couple de clés de chiffrement.
La commande ssh-keygen permet de faire cela :
$ ssh-keygen -t rsa -b 4096
Il est alors demandé de choisir l'emplacement de la clé (laisser par défaut dans ~/.ssh/ ).
Il est aussi demandé d'écrire la phrase de passe (il est conseillé d'utiliser au moins 14 caractères).
Par défaut, l'algorithme de chiffrement RSA est utilisé, avec une longueur de clé de 2048 bits.
Il est possible de vérifier la présence des fichiers contenant les clés ainsi :
ls ~/.ssh/
Il faut maintenant envoyer au serveur la clé publique, pour que celui-ci puisse chiffrer les données.
Les clés publiques sont enregistrées sur le serveur dans le fichier :
~/.ssh/authorized_keys
Chaque utilisateur doit avoir un compte sur la machine. Il faut donc un fichier authorized_keys
par utilisateur.
Copier sur la clé usb le fichier contenant la clé publique du client ~/.ssh/id_rsa.pub
, puis copier-coller le contenu de ce fichier dans le fichier ~/.ssh/authorized_keys
qui se trouve sur le serveur.
PasswordAuthentication yes
doit donc être autorisée dans le fichier de configuration du serveur ssh (par défaut). À la première connexion, même avec l'utilisation d'une clé de chiffrement, il est demandé de confirmer (par yes) car le serveur n'est pas reconnu, puisqu'il n'a pas encore eu l'occasion de transmettre sa clé publique au client.
Il suffit alors de vérifier (ls -hl) et d'ajouter les droits (chmod2) ug+r…) au répertoire local (Public dans l'exemple) et au répertoire distant sur le serveur (Test dans l'exemple).
Aller dans le menu “Système > Administration > Utilisateurs et groupes” et cocher “Fuse” dans l'onglet “Privilèges utilisateur”.
Vérifier que le port utilisé est bien ouvert sur le serveur.
Il n'y a rien à faire côté client.
Créer un petit fichier script dans lequel on écrit simplement la ligne de commande :
sshfs utilisateur@ip_distante:/home/...
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.
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.
PasswordAuthentication no UsePAM no
…sans oublier de redémarrer le démon :
# /etc/init.d/ssh restart
Host ServeurA IdentityFile ~/.ssh/cleA Host ServeurB IdentityFile ~/.ssh/cleB
# cat /var/log/auth.log | grep Invalid
22
, par un numéro de port plus élevé. Cela complique ou évite certaines attaques. Cela s'appelle de la sécurité par obscurité.
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.