Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录

1. 引言

由于本地磁盘自带容量不足,因此考虑挂载Linux服务区磁盘。

一般情况下,我们可以通过 samba 协议挂载远程服务器上的文件夹。然而,并非所有服务器都开放了 samba 端口,特别是在外网情况下,通常只会开放一个 ssh 端口。而 sshfs 是通过 ssh 协议模拟的方式,实现将远程服务器上的硬盘挂载到本地。也就是说,只要你的服务器支持ssh连接,你就可以将服务器的硬盘挂载到本地,然后采用本地的方式来操作硬盘里的文件。

下面将介绍使用winfsp + sshfs-win方式挂载Linux磁盘。

2. 下载

直接前往 github 对应项目的 release 中下载最新版本即可,需注意 sshfs-win 对 winfsp 的最低版本依赖(下载最新版本一般即可满足),另外有GUI(用户图形操作界面)可供下载,建议下载。

  • sshfs-win:https://github.com/billziss-gh/sshfs-win/releases
  • winfsp:https://github.com/billziss-gh/winfsp/releases
  • SSHFS-Win Manager:https://github.com/evsar3/sshfs-win-manager/releases (GUI,可选)

3. 使用

可使用GUI图形界面(方式A),亦可手动挂载(方式B),建议使用GUI图形界面。

3.1 方式A:使用GUI(推荐)

3.1.1 新建连接

安装好上述3个软件后,打开 GUI 界面如下,点击 Add Connection:
Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录_第1张图片

依次填写每一项内容:

  • NAME:给远程服务器取个名字
  • Connection:远程服务器配置,如IP、端口、远程用户名、验证方式(密码,或密钥[参考:SSH密钥管理及免密码登陆])
  • Remote:远程目录配置,挂载后将成为本地对应盘符的根目录
  • Local:本地盘符设置(注意不要与现有盘符冲突)
    示例如下:
    Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录_第2张图片

点击 Save 保存。

3.1.2 挂载远程目录

在主界面中点击连接按钮,即可将远程目录挂在到本地:
Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录_第3张图片

此时远程目录已经出现在了本地资源管理器中,未出现可刷新一下,或直接点击GUI主界面连接按钮左边的打开文件夹按钮即可进入目录。

Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录_第4张图片

长期使用建议在主界面的设置中打开开机自启:

Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录_第5张图片

3.2 方式B:手动挂载

3.2.1 挂载路径

  1. SSH 使用默认端口(22)
    此时,对应的 ssh 登陆命令为 ssh username@remote_ip,那么使用 sshfs-win 挂载远程服务器根目录和 home 目录的地址为:
# 根目录
\\sshfs.r\username@remote_ip\

# home 目录
\\sshfs\username@remote_ip\
# 或者 \\sshfs.r\username@remote_ip\home\username\

例如:\sshfs.r\[email protected]\,注意路径里面的分隔符为 windows 使用的反斜杠 \。

  1. SSH 使用其它端口(外网端口转发连接内网服务器)
    此时,ssh 登陆命令为 ssh -p port username@remote_ip,对应的 sshfs-win 挂载远程服务器根目录和 home 目录的地址在之前的 remote_ip 后加上 !port 即可:
# 根目录
\\sshfs.r\username@remote_ip!port\

# home 目录
\\sshfs\username@remote_ip!port\
# 或者:\\sshfs.r\username@remote_ip!port\home\username\

例如:\sshfs.r\[email protected]!34567\。

3.2.2 登陆挂载远程目录

将上述 sshfs 路径输入 windows 文件资源管理器地址栏,输入密码即可进入。(注意:弹窗中的账号显示的为 windows 的本地账号,不用修改。远程服务器的用户名已经包含在之前的 sshfs 路径之中,所以此处只需正常输入远程用户对应的密码即可。)

对于常用的远程目录,建议通过 映射网络驱动器 长期挂载于本地。
Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录_第6张图片

在 映射网络驱动器 中,可自行分配驱动器盘号,然后在 文件夹 处输入上述 sshfs 路径,点击完成后在弹出的登录框处输入密码即可完成挂载。

Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录_第7张图片

之后,可在 windows 文件浏览器的网络位置中看到已经挂载的所有远程目录:
Windows 下使用 SSHFS 通过 SSH 协议挂载远程服务器目录_第8张图片

3.2.3 详细参数(可跳过,需要时再查看)

sshfs-win 具体语法形式如下,其中 [] 中的内容为选填项,若为默认值可不填:

\\sshfs\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
\\sshfs.r\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
\\sshfs.k\[LOCUSER=]REMUSER@HOST[!PORT][\PATH]
  • REMUSER: 即 remote user,指 SSH 登陆远程主机时的用户名。

  • HOST:远程服务器,如 IP 地址,DNS 服务器名称 或 DNS 服务器 IP 地址

  • PORT:SSH 登陆所使用的端口号 (选填,默认为 SSH(22) 端口).

  • PATH:进入的远程服务器路径,可按照如下设置:

    • sshfs 对应为 HOST:~REMUSER/PATH,即远程服务器上相对于该用户 home 目录的相对路径:/home/remote_user/PATH。
    • sshfs.r 对应为 HOST:/PATH 即远程服务器上相对于根(root)目录的路径:/PATH。
    • sshfs.k 与第一项相同,对应为 HOST:~REMUSER/PATH,但它使用 Windows 本地当前用户位于 %USERPROFILE%/.ssh/id_rsa 下的 SSH 密钥进行认证(需进行远程服务器配置,可参靠SSH 密钥管理及免密码登陆),不需要输入密码。(备注:使用前两项连接时,windows 也会提醒记住密码,所以只需要第一次输入密码并记住即可)
  • LOCUSER windows本地用户名,可不填。

你可能感兴趣的:(其他,windows,ssh,服务器)