sshfs教程

安装SSHFS

在Ubuntu / Debian上安装

SSHFS是基于Linux的软件,需要安装在本地计算机上。在基于Ubuntu和Debian的系统上,它可以通过apt-get安装。

1
  sudo apt-get install sshfs

在Mac OSX上安装

您可以在Mac OSX上安装SSHFS。您需要从这里下载FUSE和SSHFS

在Windows上安装

要在Windows中安装SSHFS,您需要从google代码存储库中获取最新的win-sshfs软件包。可以在下面找到下载链接。下载软件包后,双击以启动安装程序。系统可能会提示您下载其他文件,如果是这样,安装程序将下载.NETFramework 4.0并安装。

下载地址:https://github.com/feo-cz/win-sshfs/releases

Linux

挂载远程文件系统

以下说明适用于Ubuntu/Debian和OSX。有关Windows系统的说明,请参阅本教程的结尾。

首先,我们需要创建一个本地目录来安装服务器的文件系统。

1
  sudo mkdir /mnt/droplet <--replace "droplet" whatever you prefer

现在我们可以使用sshfs命令在本地挂载文件系统。如果您的VPS是使用密码登录创建的,则以下命令将执行此操作。在此步骤中,系统将要求您提供虚拟服务器的root密码。

1
  sudo sshfs -o allow_other,defer_permissions root@xxx.xxx.xxx.xxx:/ /mnt/droplet

如果您的服务器配置为通过ssh密钥授权进行登录,则需要告诉sshfs命令使用您的公钥。系统会要求您输入在使用ssh-keygen创建密钥期间使用的密码。

1
  sudo sshfs -o allow_other,defer_permissions,IdentityFile=~/.ssh/id_rsa root@xxx.xxx.xxx.xxx:/ /mnt/droplet

现在,您可以使用服务器上的文件,就好像它是连接到本地计算机的物理设备一样。例如,如果移动到本地计算机上的/mnt /droplet目录,在本地创建文件,该文件将同步显示在虚拟服务器上。同样,您可以将文件复制到/mnt/droplet文件夹中,它们将在后台上传到您的服务器。

请务必注意,此过程仅为您的服务器提供临时挂载点。如果虚拟服务器或本地计算机已关闭或重新启动,则需要使用相同的过程再次挂载它。

卸载远程文件系统 当您不再需要安装点时,您只需使用该命令卸载它即可

1
  sudo umount /mnt/droplet

永久挂载远程文件系统 SSHFS还允许为远程文件系统设置永久挂载点。这将设置一个挂载点,就算你重新启动本地计算机和服务器它也持续存在。为了设置永久挂载点,我们需要编辑本地计算机上/etc/fstab文件,以便在每次启动系统时自动挂载文件系统。

首先,我们需要用文本编辑器编辑/etc/fstab文件。

1
  sudo nano /etc/fstab

添加以下条目

1
  sshfs#root@xxx.xxx.xxx.xxx:/ /mnt/droplet

保存对/etc/fstab文件的更改并在重新启动。

应该注意的是,在本地永久安装VPS文件系统存在潜在的安全风险。如果您的本地计算机受到攻击,它可能会直接感染到您的服务器。因此,建议不要在生产服务器上设置永久挂载。

windows

方式一:winfsp + sshfs-win (推荐)

下载

直接前往 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,可选)

快速使用

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

方式A:使用GUI(推荐)

新建连接 安装好上述3个软件后,打开 GUI 界面添加连接,点击 Add Connection:

依次填写每一项内容:

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

点击 Save 保存。

挂载远程目录 在主界面中点击连接按钮,即可将远程目录挂在到本地

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

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

方式B:手动挂载

挂载路径

  1. SSH 使用默认端口(22)

此时,对应的 ssh 登陆命令为 ssh username@remote_ip,那么使用 sshfs-win 挂载远程服务器根目录和 home 目录的地址为:

1
2
3
4
5
6
7
# 根目录
\\sshfs.r\username@remote_ip\

# home 目录
\\sshfs\username@remote_ip\
# 或者 \\sshfs.r\username@remote_ip\home\username\
例如:\\sshfs.r\xieqk@10.168.9.87\,注意路径里面的分隔符为 windows 使用的反斜杠 \。
  1. SSH 使用其它端口(外网端口转发连接内网服务器)

此时,ssh 登陆命令为 ssh -p port username@remote_ip,对应的 sshfs-win 挂载远程服务器根目录和 home 目录的地址在之前的 remote_ip 后加上 !port 即可:

1
2
3
4
5
6
7
# 根目录
\\sshfs.r\username@remote_ip!port\

# home 目录
\\sshfs\username@remote_ip!port\
# 或者:\\sshfs.r\username@remote_ip!port\home\username\
例如:\\sshfs.r\xieqk@168.10.9.87!34567\。

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

对于常用的远程目录,建议通过 映射网络驱动器 长期挂载于本地。

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

之后,可在 windows 文件浏览器的网络位置中看到已经挂载的所有远程目录:

详细参数(可跳过,需要时再查看) sshfs-win 具体语法形式如下,其中 [] 中的内容为选填项,若为默认值可不填:

1
2
3
\\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本地用户名,可不填。

方式二:win-sshfs + Dokan(旧,不推荐)

下载

win-sshfs 依赖 Dokan,所以先安装 Dokan 再正常安装 win-sshfs 即可:

Dokan:https://github.com/dokan-dev/dokany/releases win-sshfs:https://github.com/dokan-dev/dokany/releases

使用

打开win-sshfs,点击Add,在界面输入要链接的服务器的地址、端口号和用户名密码等信息,并设置好要挂载的目录,点击save,在确保可以通过ssh链接的情况下,点击mount,就可以将该目录挂载到本地了,如下图所示:

查看我的电脑,发现在 设备和驱动器 中多了一个存储设备(与方式一显示在网络位置中不同)

Licensed under CC BY-NC-SA 4.0