如何使用 SSHFS 通过 SSH 挂载远程 Linux 文件系统或目录
撰写本文的主要目的是提供有关如何通过SSH使用SSHFS客户端挂载远程 Linux 文件系统的分步指南。
本文对于那些想要在本地系统上挂载远程文件系统的用户和系统管理员很有用。我们已经在我们的一个 Linux 系统上安装了SSHFS客户端并成功挂载了远程文件系统,进行了实际测试。
在进一步安装之前,让我们了解SSHFS及其工作原理。
什么是 SSHFS?
SSHFS代表(安全 Shell 文件系统)客户端,它使我们能够挂载远程文件系统并使用SSH文件传输协议(SFTP )与本地机器上的远程目录和文件进行交互。
建议阅读: 10 个 sFTP 命令示例,用于在 Linux 中在远程服务器上传输文件
SFTP是一种安全文件传输协议,它通过安全外壳协议提供文件访问、文件传输和文件管理功能。由于SSH在通过网络将文件从一台计算机传输到另一台计算机时使用加密,并且SSHFS带有内置的 FUSE(用户空间中的文件系统)内核模块,允许任何非特权用户创建自己的文件系统而无需修改内核代码。
在本文中,我们将向您展示如何在任何 Linux 发行版上安装和使用SSHFS客户端在本地 Linux 机器上挂载远程 Linux 文件系统或目录。
步骤 1:在 Linux 系统中安装 SSHFS 客户端
默认情况下,所有主流 Linux 发行版中都不存在sshfs包,您需要在 Linux 系统下启用epel 存储库,才能在Yum命令的帮助下安装 sshfs及其依赖项。
# yum install sshfs # dnf install sshfs [On Fedora 22+ releases] $ sudo apt-get install sshfs [On Debian/Ubuntu based systems]
第 2 步:创建 SSHFS 挂载目录
安装 sshfs 包后,您需要创建一个挂载点目录,用于挂载远程文件系统。例如,我们在 下创建了挂载目录/mnt/example
。
# mkdir /mnt/example $ sudo mkdir /mnt/example [On Debian/Ubuntu based systems]
步骤 3:使用 SSHFS 挂载远程文件系统
创建挂载点目录后,现在以root用户身份运行以下命令,将远程文件系统挂载到 下/mnt/example
。 在您的例子中,挂载目录可以是任何目录。
以下命令将在本地系统中挂载名为的远程目录/home/example
。/mnt/example
(请不要忘记将xxxx替换为您的 IP 地址和挂载点)。
# sshfs example@x.x.x.x:/home/example/ /mnt/example $ sudo sshfs -o allow_other example@x.x.x.x:/home/example/ /mnt/example [On Debian/Ubuntu based systems]
如果您的 Linux 服务器配置了基于 SSH 密钥的授权,那么您将需要指定公钥的路径,如以下命令所示。
# sshfs -o IdentityFile=~/.ssh/id_rsa example@x.x.x.x:/home/example/ /mnt/example $ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa example@x.x.x.x:/home/example/ /mnt/example [On Debian/Ubuntu based systems]
步骤 4:验证远程文件系统是否已挂载
如果您成功运行上述命令并且没有任何错误,您将看到挂载在下的远程文件和目录的列表/mnt/example
。
# cd /mnt/example # ls
[root@ example]# ls 1234mbhcybkrcxfngliawfrvntmnmfgbjntd.jpg ffmpeg-php-0.6.0.tbz2 Linux news-closeup.xsl sxyyxirteuntdbifeyejimpqwqxidhhkm.jpg cmslogs gmd-latest.sql.tar.bz2 Malware newsletter1.html sshdallow epel-release-6-5.noarch.rpm json-1.2.1 movies_list.php pollbeta.sql ffmpeg-php-0.6.0 json-1.2.1.tgz my_next_artical_v2.php pollbeta.tar.bz2
步骤5:使用df -hT命令检查挂载点
如果您运行df -hT命令,您将看到远程文件系统挂载点。
# df -hT
示例输出
Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 730M 0 730M 0% /dev tmpfs tmpfs 150M 4.9M 145M 4% /run /dev/sda1 ext4 31G 5.5G 24G 19% / tmpfs tmpfs 749M 216K 748M 1% /dev/shm tmpfs tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs tmpfs 749M 0 749M 0% /sys/fs/cgroup tmpfs tmpfs 150M 44K 150M 1% /run/user/1000 example@192.168.0.102:/home/example fuse.sshfs 324G 55G 253G 18% /mnt/example
建议阅读: 12 个有用的“df”命令来检查 Linux 中的磁盘空间
第 6 步:永久挂载远程文件系统
要永久挂载远程文件系统,您需要编辑名为 的文件/etc/fstab
。为此,请使用您喜欢的编辑器打开该文件。
# vi /etc/fstab $ sudo vi /etc/fstab [On Debian/Ubuntu based systems]
转到文件底部并向其中添加以下行,然后保存文件并退出。以下条目使用默认设置挂载远程服务器文件系统。
sshfs#example@x.x.x.x:/home/example/ /mnt/example fuse.sshfs defaults 0 0
确保服务器之间已建立SSH 无密码登录,以便在系统重启时自动挂载文件系统。
如果您的服务器配置了基于 SSH 密钥的授权,则添加此行:
sshfs#example@x.x.x.x:/home/example/ /mnt/example fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0
接下来,您需要更新 fstab 文件以反映更改。
# mount -a $ sudo mount -a [On Debian/Ubuntu based systems]
步骤 7:卸载远程文件系统
要卸载远程文件系统,请发出以下命令,它将卸载远程文件系统。
# umount /mnt/example
目前就这些了,如果您在安装远程文件系统时遇到任何困难或需要任何帮助,请通过评论与我们联系,如果您觉得这篇文章很有用,请与您的朋友分享。