跳至內容

UNIXETC

SSHFS使用实例

什么是SSHFS?

SSHFS是一个通过SSH连接到服务器的网络文件系统客户端

SSHFS允许您使用SFTP挂载远程文件系统。 大多数VPS SSH服务器默认情况下都支持并启用此SFTP访问,因此SSHFS使用非常简单,无需在服务器端执行任何操作。

项目当前状态

SSHFS由所有主要的Linux发行版本提供,并且已经在多种系统上投入生产使用多年。 但是,目前SSHFS没有任何活动的常规贡献者,并且存在许多已知问题(请参阅Bugtracker)。 当前的维护者继续应用拉取请求并进行定期发布,但是不幸的是,除了解决高影响力的问题之外,它没有能力进行任何开发。 报告错误时,请理解,除非您包含拉取请求或报告严重问题,否则您可能不会得到响应。

安装SSHFS

首先,从https://github.com/libfuse/sshfs/releases下载最新的SSHFS版本。 在Linux和BSD上,您还需要安装libfuse 3.1.0或更高版本。 在macOS上,您需要OSXFUSE。 最后,您需要带有开发标头的Glib库(应该可以从操作系统的程序包管理器中获得)。

构建和安装,我们建议使用Meson(0.38版或更高版本)和Ninja。 解压缩sshfs tarball之后,创建一个(临时)构建目录并运行Meson:

$ mkdir build; cd build
$ meson ..

通常,默认的构建选项可以正常工作。 但是,如果您要调整它们,可以使用mesonconf命令进行:

$ mesonconf                  # list options
$ mesonconf -D strip=true    # set an option

构建,测试和安装SSHFS,请使用Ninja(运行测试需要py.test Python模块):

$ ninja
$ python3 -m pytest test/    # optional, but recommended
$ sudo ninja install

CentOS安装sshfs简单方法

yum install -y epel-release
yum -y install fuse-sshfs

使用SSHFS

安装了sshfs后,运行它就非常简单:

sshfs [user@]hostname:[directory] mountpoint

建议以普通用户(而不是root)身份运行SSHFS。 为此,mountpoint必须归用户所有。 如果省略用户名,SSHFS将使用本地用户名。 如果省略目录,SSHFS将挂载(远程)主目录。 如果您需要输入密码,sshfs会要求您输入密码(实际上,它只是运行ssh,如果需要,它会要求输入密码)。

还可以指定许多ssh选项(请参见sftp(1)和ssh_config(5)的手册页),包括远程端口号(-oport=PORT)

卸载文件系统:

fusermount -u mountpoint

在BSD和macOS上,卸载文件系统:

umount mountpoint