如何通过 SSH 使用 SSHFS 挂载远程 Linux 文件系统或目录
撰写本文的主要目的是提供有关如何通过 SSH 使用 SSHFS 客户端挂载远程 Linux 文件系统的分步指南。
本文对于出于任何目的想要在本地系统上安装远程文件系统的用户和系统管理员很有用。我们通过在我们的 Linux 系统之一上安装 SSHFS 客户端进行了实际测试,并成功挂载了远程文件系统。
在我们进一步安装之前,让我们了解一下 SSHFS 及其工作原理。
什么是 SSHFS?
SSHFS 代表 (Secure SHell FileSystem) 客户端,它使我们能够使用 SSH 挂载远程文件系统并与本地计算机上的远程目录和文件进行交互文件传输协议 (SFTP)。
建议阅读:在 Linux 中远程服务器上传输文件的 10 个 sFTP 命令示例
SFTP 是一种安全文件传输协议,通过 Secure Shell 协议提供文件访问、文件传输和文件管理功能。因为 SSH 在通过网络将文件从一台计算机传输到另一台计算机时使用加密,并且 SSHFS 带有内置 FUSE(用户空间中的文件系统)内核模块,允许任何非特权用户创建他们的文件系统而无需修改内核代码。
在本文中,我们将向您展示如何在任何 Linux 发行版上安装和使用 SSHFS 客户端来挂载本地 Linux 计算机上的远程 Linux 文件系统或目录。
步骤1:在Linux系统中安装SSHFS客户端
默认情况下,sshfs 软件包并不存在于所有主要 Linux 发行版上,您需要在 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/howtoing
下创建了挂载目录。
mkdir /mnt/tecmint
sudo mkdir /mnt/tecmint [On Debian/Ubuntu based systems]
步骤 3:使用 SSHFS 挂载远程文件系统
创建挂载点目录后,现在以 root 用户身份运行以下命令,在 /mnt/howtoing
下挂载远程文件系统。在你的情况下,安装目录可以是任何东西。
以下命令将在本地系统的 /mnt/howtoing
下挂载名为 /home/howtoing
的远程目录。 (不要忘记将 x.x.x.x 替换为您的 IP 地址和挂载点)。
sshfs [email :/home/tecmint/ /mnt/tecmint
sudo sshfs -o allow_other [email :/home/tecmint/ /mnt/tecmint [On Debian/Ubuntu based systems]
如果您的 Linux 服务器配置了基于 SSH 密钥的授权,那么您将需要指定公钥的路径,如以下命令所示。
sshfs -o IdentityFile=~/.ssh/id_rsa [email :/home/tecmint/ /mnt/tecmint
sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa [email :/home/tecmint/ /mnt/tecmint [On Debian/Ubuntu based systems]
步骤 4:验证远程文件系统是否已安装
如果您成功运行上述命令且没有任何错误,您将看到安装在 /mnt/howtoing
下的远程文件和目录的列表。
cd /mnt/tecmint
ls
[root@ tecmint]# ls
12345.jpg ffmpeg-php-0.6.0.tbz2 Linux news-closeup.xsl s3.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
[email :/home/tecmint fuse.sshfs 324G 55G 253G 18% /mnt/tecmint
建议阅读: 在 Linux 中检查磁盘空间的 12 个有用的“df”命令
第6步:永久挂载远程文件系统
要永久挂载远程文件系统,您需要编辑名为 /etc/fstab
的文件。为此,请使用您喜欢的编辑器打开该文件。
vi /etc/fstab
sudo vi /etc/fstab [On Debian/Ubuntu based systems]
转到文件底部并向其中添加以下行,然后保存文件并退出。以下条目使用默认设置挂载远程服务器文件系统。
sshfs#[email :/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0
确保您在服务器之间设置了 SSH 无密码登录,以便在系统重新启动期间自动挂载文件系统。
如果您的服务器配置了基于 SSH 密钥的授权,则添加以下行:
sshfs#[email :/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0
接下来,您需要更新 fstab 文件以反映更改。
mount -a
sudo mount -a [On Debian/Ubuntu based systems]
第7步:卸载远程文件系统
要卸载远程文件系统,请发出以下命令,它将卸载远程文件系统。
umount /mnt/tecmint
目前就这些,如果您在挂载远程文件系统时遇到任何困难或需要任何帮助,请通过评论与我们联系,如果您觉得本文很有用,请与您的朋友分享。