在Ubuntu/Fedora/Arch/CentOS上安装sshfs并使用sshfs

时间:2020-02-23 14:31:21  来源:igfitidea点击:

本指南旨在演示安装sshfs的步骤,并使用它通过SSH在本地系统上安装远程目录。通过解释什么是SSHFS,如何安装它以及最后如何使用它在本地系统上安装远程目录来开始。

什么是SSHFS?

SSHFS是基于FUSE的文件系统,用于在本地安装远程目录
通过SSH连接的系统。提供了用于操作sshfs的辅助工具,主要的工具是sftpman,它可以减轻SSHFS繁重用户的安装和卸载任务。

在Ubuntu 16.04上安装sshfs

SSHFS是基于Linux的软件,必须先将其安装在本地计算机上,然后才能进行安装。在基于Ubuntu和Debian的系统上,可以使用apt-get软件包管理器进行安装。

$sudo apt-get install sshfs

安装后,无需配置即可开始使用sshfs。

在Arch上安装sshfs

SSHFS在Arch上的安装是使用pacman软件包管理器或者yaourt和pacaur等AUR帮助程序完成的。

$sudo pacman -S sshfs

在Fedora和CentOS上安装sshfs

在基于Red Hat的系统上,sshfs软件包在默认存储库中不可用。我们必须先安装epel,然后从中安装sshfs软件包。

$sudo yum -y install epel-release
$sudo yum makecache fast
$sudo dnf -y install sshfs

对于CentOS:

$sudo yum -y install sshfs

使用SSHFS在SSH上挂载远程文件系统

为了能够在本地将目录安装在远程服务器上,SSH用户需要能够访问它。一旦确认用户可以访问远程系统,就使用以下语法完成文件系统的挂载:

$sshfs [theitroad@localhost]host:[dir] mountpoint [options]

一些常用的选项是:

-p PORT等效于-o port = PORT>为远程系统指定ssh端口号
-C等效于-o compression = yes>启用压缩
-F ssh_configfile指定备用ssh配置文件>使用与缺省值不同的ssh配置文件。-oused指定安装选项。

因此,让我们考虑一台具有ssh端口2022的服务器,并使用远程位置来挂载being/data/backups。要在启用压缩的情况下挂载它,请很好地使用:

$mkdir /home/jmutai/backups
$sshfs outboundmx-02:/data/backups -p 2022 -C /home/jmutai/backups

确认是否成功安装:

$ df -hT | grep fuse.sshfs
outboundmx-02:/data/backups fuse.sshfs 17G 5.7G 12G 33% /home/jmutai/backups

现在,我们可以开始使用计算机上的文件,就像它是我们物理连接的远程服务器一样。如果导航到/home/jmutai/backups目录,则可以在本地创建文件或者目录,它将显示在远程服务器上。复制到安装目录的所有文件也将自动上载到远程服务器。

$  cd /home/jmutai/backups
$touch testfile{1..3}.txt
$ls
testfile1.txt testfile2.txt testfile3.txt

检查文件是否已上传到远程服务器。

$ ssh outboundmx-02 -p 2022 "ls /data/backups"
testfile1.txt
testfile2.txt
testfile3.txt

永久挂载远程文件系统

SSHFS允许我们将永久性挂载点设置到远程文件系统,该文件系统将通过系统重新引导(本地/远程)而保持不变。要设置永久性挂载点,我们需要修改/etc/fstabfile以便在每次引导系统时自动挂载文件系统。语法为:

theitroad@localhost_OR_IP:/REMOTE/DIRECTORY /LOCAL/MOUNTPOINT fuse.sshfs defaults,_netdev 0 0

因此,在我们的示例中,该行将像

theitroad@localhost:/data/backups /home/jmutai/backups use.sshfs defaults,_netdev 0 0

相关选项摘要:

allow_other允许安装程序(即root)以外的其他用户访问共享。
default_permissions允许内核检查权限,即使用远程文件系统上的实际权限。这允许禁止访问allow_other另行授权的所有人。
uid,gid将报告的文件所有权设置为给定值; uid是用户的数字用户ID,gid是用户的数字组ID。

要测试此设置,请先卸载/home/jmutai/backups,然后通过/etc/fstabfile挂载。

$sudo umount  /home/jmutai/backups
$sudo mount -a

卸载

要卸载远程系统:

$fusermount3 -u mountpoint

或者

$sudo umount mountpoint