SSHFS:基于 SFTP 挂载远程文件系统

SSHFS(SSH Filesystem)是一种基于 FUSE(Filesystem in Userspace)SFTP(SSH File Transfer Protocol) 的远程文件系统工具。它允许用户将远程服务器上的目录挂载到本地计算机,并像本地文件系统一样访问和操作文件。由于大多数 SSH 服务器默认支持 SFTP,因此 SSHFS 具有较高的兼容性和易用性,无需额外配置服务器端即可使用。

主要特点

  • 基于 SFTP:利用 SSH 协议传输数据,保证安全性,无需额外的文件共享服务。
  • 跨平台支持:可在 Linux、macOS 和 BSD 系统上使用(Windows 需借助 WSL)。
  • 无需 root 权限:普通用户即可挂载远程目录,前提是目标挂载点归当前用户所有。
  • 支持 SSH 选项:可以自定义端口、身份验证方式等(如 -oport=PORT 指定端口)。
  • 灵活的访问方式:可以像访问本地文件一样操作远程文件,包括读取、写入、修改等。

安装

1. 从软件包管理器安装(推荐)

大多数 Linux 发行版已包含 SSHFS,可直接通过包管理器安装:

  • Ubuntu / Debian
sudo apt update
sudo apt install sshfs
  • Arch Linux
sudo pacman -S sshfs
  • Fedora
sudo dnf install sshfs
  • macOS(使用 Homebrew)
brew install sshfs

2. 源码安装(适用于特殊需求)

如果需要最新版本,可从 GitHub 下载源码并编译:

git clone https://github.com/libfuse/sshfs.git
cd sshfs
mkdir build && cd build
meson ..
ninja
sudo ninja install

使用方法(测试由YxVM提供支持

1. 挂载远程文件系统

运行以下命令将远程目录挂载到本地:

sshfs [user@]hostname:[remote_directory] mountpoint
  • user@hostname:远程服务器用户名和地址(如 [email protected])。
  • [remote_directory]:要挂载的远程目录(省略时默认挂载用户的 home 目录)。
  • mountpoint:本地挂载点,必须由当前用户创建并拥有权限。

示例

mkdir ~/my_remote
sshfs [email protected]:/var/www ~/my_remote

自定义端口(非默认 22 端口)

sshfs -oport=2222 [email protected]:/data ~/my_remote

2. 取消挂载(卸载远程目录)

在 Linux 中使用 fusermount 命令:

fusermount -u mountpoint

在 macOS 和 BSD 系统中使用 umount 命令:

umount mountpoint

总结

SSHFS 是一个强大且易用的远程文件系统工具,适用于开发者、系统管理员和普通用户。它利用 SSH 的安全性,使得远程文件访问变得简单高效,尤其适用于 VPS 服务器管理、远程开发环境设置等场景。如果你已经在使用 SSH 进行远程管理,那么 SSHFS 可能会成为你日常工作中不可或缺的工具。

上一篇
下一篇