SSHFS(Secure SHell FileSystem) 是一种基于 SSH 协议的网络文件系统,允许用户通过挂载远程服务器的文件系统,在本地像操作本地文件一样访问和管理远程文件。它利用 SSH 提供的加密和认证机制,确保数据传输的安全性,适合需要远程文件访问的场景而无需额外配置专用的文件共享协议。通过简单的挂载命令(如 `sshfs user@remote:/path /local/mountpoint`),SSHFS 即可快速建立连接,无需复杂的设置,是一种高效、便捷且安全的远程文件共享方式。
这篇文章,我们记录将会向你展示在任意 Linux 发行版上如何安装并且使用 SSHFS 客户端,在本地 Linux 机器上挂载远程的 Linux 文件系统或者目录。
第一、在 Linux 系统上安装 SSHFS
默认情况下,sshfs 包不存在所有的主流 Linux 发行版中,你需要在你的 Linux 系统中启用 epel,在 Yum 命令行的帮助下安装 SSHFS 及其依赖。
在 Fedora 22+ 发行版上:
# yum install sshfs
# dnf install sshfs
基于 Debian/Ubuntu 的系统:
$ sudo apt-get install sshfs
第二、创建 SSHFS 挂载目录
当你安装 SSHFS 包之后,你需要创建一个挂载点目录,在这儿你将要挂载你的远程文件系统。例如,我们在 /mnt/tecmint 下创建挂载目录。
# mkdir /mnt/tecmint 【在 Fedora 22+ 发行版上】
$ sudo mkdir /mnt/tecmint 【基于 Debian/Ubuntu 的系统】
第三、使用 SSHFS 挂载远程的文件系统
当你已经创建你的挂载点目录之后,现在使用 root 用户运行下面的命令行,在 /mnt/tecmint 目录下挂载远程的文件系统。视你的情况挂载目录可以是任何目录。
下面的命令行将会在本地的 /mnt/tecmint 目录下挂载一个叫远程的一个 /home/tecmint 目录。(不要忘了使用你的 IP 地址和挂载点替换 x.x.x.x)。
# sshfs tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint 【基于 Debian/Ubuntu 的系统】
如果你的 Linux 服务器配置为基于 SSH 密钥授权,那么你将需要使用如下所示的命令行指定你的公共密钥的路径。
# sshfs -o IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
$ sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
【基于 Debian/Ubuntu 的系统】
第四、验证远程的文件系统挂载成功
如果你已经成功的运行了上面的命令并且没有任何错误,你将会看到挂载在 /mnt/tecmint 目录下的远程的文件和目录的列表
# 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
第五、使用 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
tecmint@192.168.0.102:/home/tecmint fuse.sshfs 324G 55G 253G 18% /mnt/tecmint
第六、永久挂载远程文件系统
为了永久的挂载远程的文件系统,你需要修改一个叫
/etc/fstab
的文件。照着做,使用你最喜欢的编辑器打开文件。
# vi /etc/fstab
$ sudo vi /etc/fstab 【基于 Debian/Ubuntu 的系统】
移动到文件的底部并且添加下面的一行,保存文件并退出。下面条目表示使用默认的设置挂载远程的文件系统。
sshfs#tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint fuse.sshfs defaults 0 0
确保服务器之间允许 SSH无密码登录,这样系统重启之后才能自动挂载文件系统。
如果你的服务器配置为基于 SSH 密钥的认证方式,请加入如下行:
sshfs#tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint fuse.sshfs IdentityFile=~/.ssh/id_rsa defaults 0 0
接下来,你需要更新 fstab 文件使修改生效。
# mount -a
$ sudo mount -a 【基于 Debian/Ubuntu 的系统】
第七、卸载远程的文件系统
为了卸载远程的文件系统,只需要发出以下的命令即可。
# umount /mnt/tecmint
文章参考:https://linux.cn/article-7855-1.html