如何使用SSHFS通过SSH挂载远程目录

时间:2020-03-05 15:27:37  来源:igfitidea点击:

SSHFS(SSH文件系统)是基于FUSE的文件系统客户端,用于通过SSH连接安装远程目录。
SSHFS使用的是SFTP协议,它是SSH的子系统,并且在大多数SSH服务器上默认启用。

与其他网络文件系统协议(例如NFS和Samba)相比,SSHFS的优势在于它不需要在服务器端进行任何其他配置。

要使用SSHFS,我们只需要通过SSH访问远程服务器即可。

由于SSHFS使用SFTP,因此必须对服务器和客户端之间传输的所有数据进行加密和解密。

与NFS相比,这会导致性能稍微下降,并且客户端和服务器上的CPU使用率会更高。

本教程将向我们展示如何在Linux,macOS和Windows上安装SSHFS客户端以及如何安装远程目录。

安装SSHFS

SSHFS软件包可用于所有主要操作系统,并且安装非常简单。

在Ubuntu和Debian上安装SSHFS

SSHFS可从默认的Ubuntu和Debian存储库中获得。
通过输入以下内容更新软件包索引并安装sshfs客户端:

sudo apt updatesudo apt install sshfs

在CentOS上安装SSHFS

在CentOS和其他Red Hat衍生产品上,运行以下命令来安装sshfs:

sudo yum install sshfs

在macOS上安装SSHFS

macOS用户可以通过从osxfuse站点或者通过Homebrew下载FUSE和SSHFS软件包来安装SSHFS客户端:

brew cask install osxfusebrew install sshfs

在Windows上安装SSHFS

Windows用户需要安装两个软件包WinFsp和SSHFS-Win。

  • WinFsp。
  • SSHFS-Win。

挂载远程文件系统

以下说明适用于所有Linux发行版和macOS。

要安装远程目录,SSH用户需要能够访问它。

SSHFS mount命令采用以下形式:

sshfs [user@]host:[remote_directory] mountpoint [options]

sshfs命令将读取SSH配置文件并按主机设置使用。

如果未指定远程目录,则默认为远程用户主目录。

例如,要在IP地址为“ 192.168.121.121”的远程主机上挂载名为“ theitroad”的用户的主目录,请首先创建一个将用作挂载点的目录,该目录可以是我们想要的任何位置:

mkdir ~/theitroadremote

然后使用sshfs命令挂载远程目录:

sshfs [email protected]:/home/theitroad /home/theitroad/theitroadremote

系统将提示我们输入用户密码。
为避免每次安装远程目录时都键入密码,请生成SSH密钥并设置无密码SSH登录。

现在,我们可以使用与本地文件相同的方式与位于远程服务器上的目录和文件进行交互。
例如,我们可以编辑,删除,重命名或者创建新文件和目录。

如果要永久挂载远程目录,则需要编辑本地计算机的“/etc/fstab”文件,然后添加一个新的挂载条目。
这样,当系统启动时,它将自动安装远程目录。

要通过SSHFS从'/etc/fstab'挂载远程目录,请使用'fuse.sshfs'作为文件系统类型。

/etc/fstab

user@host:/remote/dir  /local/mountpoint  fuse.sshfs  defaults  0  0

创建持久性挂载时,请确保我们可以使用基于SSH密钥的身份验证连接远程主机。

在Windows上挂载远程文件系统

Windows用户可以使用Windows资源管理器将网络驱动器映射到SSH服务器上的远程目录。

打开Windows资源管理器,右键单击“此PC”,然后选择“映射网络驱动器”。
选择要装入的驱动器,然后在“文件夹”字段中以以下格式输入远程用户,服务器和路径:

\sshfs\user@host[\PATH]

在撰写本文时,SSHFS-Win不支持基于密钥的身份验证,因此需要将远程ssh服务器配置为接受基于密码的身份验证。

有关更多详细信息,请参阅SSHFS-Win手册。

卸载远程文件系统

要分离已挂载的文件系统,请使用'umount'或者'fusermount'命令,然后使用已挂载文件系统的目录(挂载点):

fusermount -u /local/mountpoint
umount /local/mountpoint