让 `sshfs` 在 WSL 上运行或寻找替代方案

让 `sshfs` 在 WSL 上运行或寻找替代方案

我所在大学的计算机科学系有自己的服务器用于开发(从现在开始,dev.univ.edu)。我可以通过 SSH 和 SFTP 访问此服务器,我希望使用 WSL 在我的 Windows 笔记本电脑上完成一些繁重的工作。我的计划是通过sshfsSFTP 将服务器的文件系统挂载到我的笔记本电脑上,这样我就可以使用自己的工具,而不必使用我们服务器上有限的程序。但是,每当我尝试使用时sshfs,都会发生以下情况:

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

运行modprobe fuse得到以下结果:

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

经过一番挖掘,似乎fuseWSL 不支持,即使在UserVoice 页面fuse已经支持了两年多,有超过 1500 人请求支持。由于依赖sshfsfuse我假设用于创建远程文件所在的文件系统),因此sshfs无法使用。

我找到了一个项目(billziss-gh/winfsp) 看起来很有希望,但我不知道如何结合来实现它sshfs。有没有比我更有知识的人可以帮助我实现这个功能?

编辑:根据这个问题winfsp无法与 WSL 兼容。不过,我注意到了同一个人的一个项目(billziss-gh/nfs-win) 可能会有用。

答案1

所以我有一个你可能会喜欢的解决方法。我安装了SFTP 网络驱动器 2017 然后远程连接到我想要的文件系统。我将其映射为(通过 GUI)R:\。然后,您可以R:\按照说明从 WSL 映射到本地文件夹这里

因此在 WSL 中,我的主目录中有一个名为 的文件夹cluster。要将其从我的集群挂载为我的本地主目录,我运行:

sudo mount -t drvfs R: ~/cluster

要卸载它,我运行

umount ~/cluster

为了方便起见,我创建了一个名为的别名mc,来源于我的.bashrc

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

我希望这有帮助!

答案2

自从我提出这个问题以来,微软已经在其 Insiders Preview 通道中发布了 WSL 2。由于这为 WSL 提供了完整的 Linux 内核,因此无需采取其他变通措施即可让 SSHFS 正常运行。

更新:从 Windows 版本 2004 开始,WSL 2 现已公开可用。祝您玩得开心!

相关内容