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 可能会成为你日常工作中不可或缺的工具。