web-dev-qa-db-fra.com

Faire en sorte que `sshfs` fonctionne sur WSL ou trouver une alternative

Le département CS de mon université a son propre serveur utilisé pour le développement (à partir de maintenant, dev.univ.edu). J'ai un accès SSH et SFTP à ce serveur et j'espérais effectuer un travail important sur mon ordinateur portable Windows à l'aide de WSL. Mon plan était d'utiliser sshfs pour monter le système de fichiers du serveur sur mon ordinateur portable via SFTP, afin que je puisse utiliser mes propres outils au lieu de devoir utiliser les programmes limités sur notre serveur. Cependant, chaque fois que j'essaie d'utiliser sshfs, les événements suivants se produisent:

user@Host:~$ sshfs -p 22 [email protected]: ~/dev/ -o follow_symlinks
> Fuse: device not found, try 'modprobe Fuse' first

Lancer modprobe Fuse me donne le résultat suivant:

modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.0-43-Microsoft/modules.dep.bin'
modprobe: FATAL: Module Fuse not found in directory /lib/modules/4.4.0-43-Microsoft

Après quelques recherches, il semble que Fuse n’est pas prise en charge sur WSL , même après la page UserVoice Pour Fuse, le soutien est en hausse depuis plus de 2 ans et plus de 1 500 personnes l’ont demandé. Étant donné que sshfs repose sur Fuse (pour la création du système de fichiers, les fichiers distants sont pris en charge), cela rend sshfs inutilisable.

J'ai trouvé un projet ( billziss-gh/winfsp ) qui semble prometteur, mais je ne sais pas comment le mettre en œuvre en combinaison avec sshfs. Existe-t-il une personne plus informée que moi qui puisse m'aider à faire en sorte que cela fonctionne?

EDIT: Selon ce problème , winfsp ne fonctionnera pas avec WSL. Cependant, j'ai remarqué un projet du même type ( billziss-gh/nfs-win ) qui pourrait être utile.

6
Isaac Corbrey

Donc, j'ai une solution de contournement que vous pourriez aimer. J'ai installé SFTP Net Drive 2017 , puis je me suis connecté à distance au système de fichiers que je voulais. Je l'ai mappé (via l'interface graphique) en tant que R:\. Depuis WSL, vous pouvez alors mapper R:\ vers un dossier local, comme expliqué ici .

Donc, dans WSL, j'ai un dossier dans mon répertoire personnel appelé cluster. Pour le monter pour qu'il soit mon domicile local à partir de mon cluster, je lance:

Sudo mount -t drvfs R: ~/cluster

et pour le démonter, je cours

umount ~/cluster

pour plus de commodité, j'ai créé un alias appelé mc, qui provient de mon .bashrc

alias mc="Sudo umount ~/cluster; Sudo mount -t drvfs R: ~/cluster"

J'espère que ça aide!

4
chris