1. 简介

SSHFS(SSH Filesystem)是一个基于FUSE的文件系统客户端,用于通过SSH连接远程目录。SSHFS使用的是SFTP协议,它是SSH的一个子系统,在大多数SSH服务器上默认启用。与其他网络文件系统(如NFS和Samba)相比,SSHFS的优势在于它不需要在服务器端进行任何额外的配置。要使用SSHFS,您只需要SSH访问远程服务器。

2. 系统环境

Cetnos7.7
Windows10

3. 安装

  • Centos安装SSHFS
yum -y install epel-release && yum -y install
  • Windows10安装SSHFS

需要安装最新版本的WinFsp和SSHFS-Win:

WinFsp下载地址:https://github.com/billziss-gh/winfsp/releases/

在安装时可能报如下病毒告警:

通过SSHFS挂载远程目录(Linux和Win10)_linux


可以让杀毒软件将其隔离或删除,不影响使用(64bit环境)。

SSHFS-Win下载地址:https://github.com/billziss-gh/sshfs-win/releases

4. 在CentOS7中挂载远程文件系统

  • SSHFS使用格式:
sshfs [user@]host:[dir] mountpoint [options]

如果没有指定远程目录,默认会连接用户的家目录。
例如,远程主机需要访问root的家目录,在这里使用root用户远程访问。挂载点这里使用/mnt文件夹。

[root@localhost ~]# sshfs root@192.168.0.105: /mnt

系统将提示您输入用户密码。为了避免每次装载远程目录时键入密码,可以生成SSH密钥并设置无密码登录。
如果需要开机自动挂载,可以在/etc/fstab文件中添加:

echo 'root@192.168.0.105:/Shares /mnt fuse.sshfs defaults 0 0'>>

前提是需要设置无密码登录,不然开机不能挂载。

  • 卸载远程文件系统
fusermount -u /mnt/
或者
umount

5. 在Windows10中挂载远程文件系统

默认添加的远程目录(Linux)是用户的家目录。
右键此电脑 - 映射网络驱动器,然后选择驱动器标识字母,在文件夹输入框中输入

\\sshfs\root@192.168.0.105

通过SSHFS挂载远程目录(Linux和Win10)_文件系统_02


通过SSHFS挂载远程目录(Linux和Win10)_centos_03


如果需要远程挂载根目录,可以如下操作:

在文件夹中输入

\\sshfs.r\root@192.168.0.105

通过SSHFS挂载远程目录(Linux和Win10)_客户端_04


通过SSHFS挂载远程目录(Linux和Win10)_客户端_05

6. 总结

由于SSHFS使用SSH协议,所以服务器和客户端之间传输的所有数据都必须加密和解密。与NFS相比,这会导致性能略有下降,并且客户端和服务器上的CPU使用率更高。sshfs可以临时用来访问远程文件。