Skip to content

Accès local à des fichiers distants via sshfs

Situation

  • Vous avez sur votre machine tout le confort d'édition auquel vous avez l'habitude.

  • Dans un terminal, vous n'avez que des éditeurs de texte frustes.

Pour éditer des fichiers sur votre machine puis les exécuter sur une autre machine, vous avez plusieurs solutions :

  • vous copiez/collez (à éviter)
  • si vos fichiers sont gérés via git (voir chapitre suivant), vous utilisez git sur votre machine et sur l'autre machine (à éviter)
  • votre éditeur sait accéder à la machine distante (VisualCode SSH, vim…)
    • très pratique mais seul votre éditeur pourra accéder à ses fichiers
  • vous installez/utilisez un serveur samba ou NFS sur la machine distante
    • vous en savez trop pour cette section
  • vous utilisez sshfs qui permet de partager un disque de donnée à distance

En résumé, sshfs vous permet de connecter toute partie du système de fichier distant, avec les droits associés, sur votre machine locale comme vous l'avez déjà fait avec votre compte école.

Les données sur la machine distante apparaissent alors comme si elles étaient sur une clé USB / disque sur votre machine, vous pouvez les éditer dans votre environnement et les modifications sont visibles immédiatement sur la machine distante.

Installation sshfs

On nommera ci-dessous machine le nom de la machine distante et login le nom de l'utilisateur sur la machine distante.

MacOS

  • installez macFuse et sshfs depuis https://osxfuse.github.io/
  • créez le répertoire /Volumes/distant
  • tapez
    sshfs username@machine:/remote/directory /Volumes/distant`
    

Vous voyez alors les fichiers locaux de l'autre machine dans le répertoire /Volumes/distant.

Pour vous déconnecter, utilisez la commande umount sur le volume monté:

umount /Volumes/distant`

Linux

  • installez sshfs avec sudo apt install sshfs
  • créez le répertoire /media/distant
  • tapez
    sshfs -o allow_other,default_permissions username@machine:/remote/directory /media/distant
    

Vous voyez alors les fichiers locaux de l'autre machine dans le répertoire /media/distant

Pour vous déconnecter, utilisez la commande umount sur le volume monté:

umount /media/distant`

Windows

Pour vous déconnecter, utilisez l'explorateur de fichiers.

Remarques

Vous pouvez passer un chemin distant vide à SSHFS pour votre répertoire utilisateur:

sshfs username@machine:  /Volumes/distant`

Vous pouvez passer un chemin relatif à votre répertoire utilisateur:

sshfs username@machine:./mon_projet /Volumes/distant`

Attention

Utiliser le raccourci ~ en sshfs ne fonctionne pas ! Le répertoire par défaut étant votre répertoire utilisateur distant, utiliser des chemins relatifs à ce répertoire, comme ./projets. Les chemins commençants par / sont des chemins absolus.