Windows 下使用 sshfs-win 挂载 sftp

date
Feb 23, 2023
Last edited time
Mar 27, 2023 08:36 AM
status
Published
slug
Windows下使用sshfs-win挂载sftp
tags
summary
蛤蛤蛤 突然忘记之前是怎么挂载的了 现在再翻出来 为什么不用好用的GUI呢?
type
Post
Field
Plat

sshfs-win 安装与使用

上文提到,sshfs-win 依赖 WinFSP,因此我们要首先安装 WinFSP:https://github.com/billziss-gh/winfsp
WinFSP 安装结束后,我们再安装 sshfs-win:https://github.com/billziss-gh/sshfs-win
两者都安装完毕后,我们在 Windows 的文件资源管理器中点击『映射网络驱动器』:
在弹出的对话框中,我们选定需要赋予的盘符,然后在文件夹中输入如下内容:
需要注意的是这里端口号不是我们通常使用的:,而是!,点击完成后,输入用户名对应的密码即可连接成功。

一些需要注意的细节

尽管 sshfs-win 的操作较为简单,但如果你想做更多操作,就会发现各种各样奇奇怪怪的『BUG』,因此这一节笔者将为大家列举两个需要注意的细节。

1. 如何挂载子目录

默认情况下,我们在输入第二节提到的连接串后,会将用户的家目录映射到 Windows 中,如果我们只是为了管理网站目录、做做备份或者是作为 NAS 使用,可能需要挂载其他子目录,但这时我们可能会发现,使用如下的连接串会导致连接时出现『位置不可用』的报错:
这是因为连接串中的路径是以用户家目录为参考的相对路径,即如果我们需要映射/home目录,则需要使用如下连接串
其中..\的数量需要根据实际情况决定,这样就能成功映射到我们所需的目录
这样的方式很容易造成误解,也让连接串变得复杂,因此 sshfs-win 支持另一种更为简明的连接串语法:
这里的r指的是root,即默认从根目录挂载而非家目录,这样就无需使用丑陋的..\回到根目录,我们可以直接从根目录开始,输入绝对路径来挂载我们所需的文件夹。
其实除了sshfs.r以外,还有其他的一些连接串规则能帮助 sshfs-win 变得更加方便,具体可以参考:https://github.com/billziss-gh/sshfs-win#unc-syntax

2. 如何取消挂载

笔者在使用 sshfs-win 的时候,经常出现无法卸载盘符的情况,无论通过文件资源管理器右键断开连接,还是通过 cmd 执行net use 盘符: /delete操作,均会在提示卸载成功后发现盘符依旧存在。
根据这篇 Issue:billziss-gh/sshfs-win#119,这可能是由于和其他应用程序的冲突引起。冲突可能不便解决,但我们可以利用上文描述过的原理,即 WinFSP 为 sshfs 提供支持,从 WinFSP 的角度下手解决这个问题。
我们打开命令提示符(或者 PowerShell,取决于你的喜好),定位目录到 WinFSP 的安装目录,默认应该是C:\Program Files (x86)\WinFsp\bin\,然后执行如下命令:
这时它会列出正在运行的挂载任务,这里可以看到,第一个挂载任务的语法存在错误,这可能是导致它无法正常取消挂载的原因,这时候我们可以执行如下命令来取消挂载:
命令执行成功后,我们打开文件资源管理器就会发现之前无法取消挂载的盘符已经成功消失。

© Lazurite 2021 - 2024