Monter un répertoire distant localement avec sshfs

Soumis par efaistos le ven, 03/10/2008 - 03:05

L'utilisation de ssh pour administrer ou juste accéder à une machine distante est la solution la plus simple et la plus sécurisée.

Nous avons vu comment monter un répertoire distant dans un répertoire local avec curlftpfs.
Nous allons voir comment utiliser sshfs de la même manière pour accéder à un répertoire distant comme s'il faisait parti de notre machine locale.

Voici un exemple concret de son utilisation, vous disposez d'un ordinateur portable et d'un poste de travail où se trouve toute votre collection musicale car vous n'avez pas suffisamment de place sur votre portable. Nous allons utiliser sshfs pour monter le répertoire où se trouve votre musique dans un répertoire local de votre portable et ainsi vous aurez accès a vos fichiers comme s'ils étaient disponible localement. Cette méthode est plus rapide et facile à mettre en place que NFS ou Samba par exemple (non pas que ces deux moyens soient vraiment plus compliqué à mettre en place :).

Pour utiliser sshfs, nous devons installer ces deux paquets :

# apt-get install sshfs fuse-utils

Fuse est un module du noyau Linux permettant de monter des répertoires distants localement et sans avoir besoin des privilèges root. La plupart des distributions récentes l'intègrent dans leur noyau en tant que module.

Une fois les deux paquets installés, vous devez :

  • Ajouter votre nom de login au groupe fuse (nécessite les droits root) :
    # addgroup votre-login fuse
    
  • Créer un sous-répertoire dans votre répertoire personnel :
    $ mkdir jukebox
    
  • Déconnectez-vous complètement et relogguez-vous
  • Chargez, si nécessaire, le module fuse dans le noyau (nécessite les droits root) :
    # modprobe fuse
    

Maintenant, vous êtes en mesure de monter votre système de fichier distant ainsi :

$ sshfs machine-distante:~/musique jukebox/

machine-distant: est le nom de la machine distante ou dans notre exemple votre poste de travail et ~/musique est le répertoire où se situe votre musique. jukebox est le répertoire local que nous avons créé et via lequel nous accéderons à nos fichiers.

Vous devez bien sûr disposer d'un compte sur votre poste de travail et avoir le droit d'accéder au répertoire que l'on désire monter localement.
Si vous utilisez des logins différents entre les deux machines il suffit de faire :

$ sshfs mon-login-distant@machine-distante:~/musique jukebox

Dans les deux cas un mot de passe vous sera demandé comme lors d'une connexion ssh standard.

Vous pouvez maintenant accéder à toute votre musique via le répertoire jukebox et utiliser n'importe quel lecteur de musique. Celui-ci verra le répertoire jukebox comme si c'était un répertoire local.

Une fois que vous avez terminé, vous pouvez démonter le répertoire ainsi :

$ fusermount -u jukebox

Simple, non ?