SSHFS 教程:如何挂载远程目录及配置无密码访问

By | 最新修改:2025-12-23

前言

SSHFS(SSH File System)是一种通过 SSH 协议实现远程文件系统挂载的工具,允许用户像操作本地文件一样管理远程服务器上的文件,它基于 SFTP。本文详细介绍了 SSHFS 的安装、配置、使用方法,以及如何实现无密码认证和系统启动时自动挂载。

SSHFS-基于SFTP的远程文件系统同步工具


安装 SSHFS 客户端

Debian 系,像 Ubuntu

sudo apt-get install -y sshfs

RHEL 系,像 Rocky Linux,Fedora

在红帽系的衍生版中的安装有点儿麻烦,但是也不那么复杂。

以下适合 Red Hat Enterprice Linux 7/8/9,CentOS 7,CentOS Stream 9,Rocky Linux 8/9,Fedora 等等。

  1. 安装 EPEL 源:
    yum install -y epel-release
    
  2. 更换 EPEL 源为国内源(阿里云 EPEL 源)
    • RHEL 7 / CentOS 7
      curl -o /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
      
    • RHEL 8 / Rocky Linux 8

      这里不使用 EPEL

      dnf --enablerepo=powertools -y install fuse-sshfs
      
    • RHEL 9 / CentOS Stream 9 / Rocky Linux 9
      sed -e 's|^metalink=|#metalink=|g' \
          -e 's|^#baseurl=https\?://download.fedoraproject.org/pub/epel/|baseurl=https://mirrors.aliyun.com/epel/|g' \
          -e 's|^#baseurl=https\?://download.example/pub/epel/|baseurl=https://mirrors.aliyun.com/epel/|g' \
          -i.bak \
          /etc/yum.repos.d/epel{,-testing}.repo
      
  3. 刷新软件缓存及更新系统软件
    yum makecache
    yum update -y
    
  4. 安装
    yum install -y fuse3 fuse-sshfs
    

本文将以在 Rocky Linux 9 作为服务端,Ubuntu 24.04 作为客户端来演示如何挂载远程目录。

尽管本文的举例中仅涉及到上述两种操作系统,但是本文的教程仍然在其他 Linux 操作系统有效。


SSH 服务端启用 SFTP


总结

本文详细介绍了 SSHFS 的安装、配置和使用方法,包括在 Debian/Ubuntu 和 RHEL 系系统中的安装步骤,如何启用 SFTP 服务,以及通过 SSHFS 挂载远程目录到本地的操作指南。此外,还提供了无密码访问的实现方式(SSH 密钥对)、指定本地目录权限的技巧,以及系统启动时自动挂载的配置方法,并为每个步骤提供了实用场景示例和常见问题讲解。

SSHFS 目前有一个令笔者不喜欢的地方,就是不能在服务器端自动地改变远程文件的属主和属组,这在一些场景下很不方便。

远程和本地文件的同步可能有稍许的延迟,只要配置是正确的,那么请稍等一下便会同步起来。

用这种方式远程挂载目录有个明显的缺点:无法自由修改远程文件的属主用户,这对于一些像网站目录这样需要按照服务器软件要求指定属主和属组的需求无法满足。此时需要一种可以既能实时远程同步,又能自定义文件属主的工具,可参考:《Linux 下 Rsync 文件同步与增量备份》和《Linux Incron 实时文件监控与 Rsync 实时文件同步》。


程序知路

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。

本文章可以转载,但是需要说明来源出处!

本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com