myfreax
ssh

SSH 挂载远程目录SSHFS

SSHFS全称SSH文件系统,是基于FUSE的文件系统客户端,用于通过SSH连接安装远程目录

4 min read
By myfreax
SSH 挂载远程目录SSHFS

SSHFS全称SSH文件系统,是基于FUSE的文件系统客户端,用于通过SSH连接安装远程目录。

SSHFS使用的是SFTP协议,它是SSH的子系统,大多数SSH服务器默认情况下启用该协议。

与其他网络文件系统协议,例如NFS和Samba相比,SSHFS的优势在于它不需要在服务器端进行任何其他配置。要使用SSHFS,您只需要允许SSH访问远程服务器即可。

由于SSHFS使用SFTP,因此SSHFS对服务器和客户端之间传输的所有数据进行加密和解密。与NFS相比,这导致性能略有下降,并且客户端和服务器的CPU使用率更高。

本教程将向您展示如何在Linux,macOS和Windows安装SSHFS客户端以及如何挂载远程目录。SSHFS软件包可用于所有主要操作系统,并且安装非常简单。

在基于Debian的Linux发行版,例如Ubuntu,Linux mint。安装SSHFSS可从默认的Ubuntu和Debian存储库中获得。

sudo apt update && sudo apt install sshfs命令将更新软件包索引并安装sshfs客户端。

在基于Redhat的Linux发行版,例如CentOS,Fedora安装SSHFS。可运行命令sudo yum install sshfs来安装sshfs。

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

Windows用户需要安装两个软件包WinFspSSHFS-Win

sudo apt update
sudo apt install sshfs #Debian,Ubuntu

sudo yum install sshfs #Redhat,CentOS,Fedora

brew cask install osxfusebrew install sshfs #macOS

挂载 SSHFS文件系统

以下说明适用于所有Linux发行版和macOS。要挂载远程目录,SSH用户需要能够访问远程计算机。

这是SSHFS挂载命令语法与选项sshfs [user@]host:[remote_directory] mountpoint [options]

sshfs命令将读取SSH配置文件并使用每个主机的设置。如果未指定远程目录,则默认为远程用户的家目录。

例如,要挂载远程主机IP地址为192.168.121.121。用户名是myfreax的家目录。

请首先创建一个目录作为挂载点,该目录可以是您想要的任何位置。运行命令mkdir ~/myfreaxremote。然后使用sshfs命令挂载远程目录。运行sshfs命令。

mkdir ~/myfreaxremote

sshfs myfreax@192.168.121.121:/home/myfreax /home/myfreax/myfreaxremote

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

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

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

要通过SSHFS从挂载远程目录/etc/fstab,请使用fuse.sshfs作为文件系统类型。创建持久性挂载时,请确保您可以使用基于SSH密钥的身份验证连接远程主机。

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

Windows 挂载SSHFS文件系统

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

打开Windows资源管理器,右键单击此计算机,然后选择映射网络驱动器。选择要安装的驱动器,然后在文件夹字段中输入远程用户,服务器和路径。

在撰写本文时,SSHFS-Win不支持基于密钥的身份验证,因此需要将远程ssh服务器配置为接受基于密码的身份验证。有关更多详细信息,请参阅SSHFS-Win手册。

\\sshfs\user@host[\PATH]

卸载SSHFS文件系统

要卸载已挂载的文件系统,请使用umountfusermount命令,然后使用已挂载文件系统的目录或者挂载点进行卸载。

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

结论

在本教程中,您学习了如何使用SSHFS挂载远程目录。当您要使用本地计算机应用程序与远程文件进行交互时,此功能很有用。

您可能还想通过设置SFTP Chroot Jail环境并更改默认的SSH端口来限制用户访问,从而为服务器添加额外的安全性。

如果您有任何问题或反馈,请随时发表评论。有关sshfs选项的完整列表,请man sshfs在终端中键入。