使用 SSHFS 挂载远程的 Linux 文件系统及目录

这篇文章对于那些不管出于什么目的,但愿在他们本地的系统中挂载远程的文件系统的用户或者系统管理员有帮助。咱们经过 Linux 系统中的一个安装了 SSHFS 客户端进行实际测试,而且成功的挂载了远程的文件系统。php

在咱们进一步安装以前,让咱们了解一下 SSHFS 的相关内容,以及它是如何工做的。html

使用 SSHFS  挂载远程的 Linux 文件系统及目录使用 SSHFS  挂载远程的 Linux 文件系统及目录

什么是 SSHFSlinux

SSHFS(Secure SHell FileSystem)是一个客户端,可让咱们经过 SSH 文件传输协议(SFTP)挂载远程的文件系统而且在本地机器上和远程的目录和文件进行交互。sql

SFTP 是一种经过 SSH 协议提供文件访问、文件传输和文件管理功能的安全文件传输协议。由于 SSH 在网络中从一台电脑到另外一台电脑传输文件的时候使用数据加密通道,而且 SSHFS 内置在 FUSE(用户空间的文件系统)内核模块,容许任何非特权用户在不修改内核代码的状况下建立他们本身的文件系统。json

在这篇文章中,咱们将会向你展现在任意 Linux 发行版上如何安装而且使用 SSHFS 客户端,在本地 Linux 机器上挂载远程的 Linux 文件系统或者目录。安全

步骤1:在 Linux 系统上安装 SSHFS服务器

默认状况下,sshfs 包不存在全部的主流 Linux 发行版中,你须要在你的 Linux 系统中启用 epel,在 Yum 命令行的帮助下安装 SSHFS 及其依赖。网络

# yum install sshfs
# dnf install sshfs              【在 Fedora 22+ 发行版上】
$ sudo apt-get install sshfs     【基于 Debian/Ubuntu 的系统】

步骤2:建立 SSHFS 挂载目录ssh

当你安装 SSHFS 包以后,你须要建立一个挂载点目录,在这儿你将要挂载你的远程文件系统。例如,咱们在 /mnt/tecmint 下建立挂载目录。编辑器

# mkdir /mnt/tecmint
$ sudo mkdir /mnt/tecmint     【基于 Debian/Ubuntu 的系统】

步骤 3:使用 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 的系统】

步骤 4:验证远程的文件系统挂载成功

若是你已经成功的运行了上面的命令而且没有任何错误,你将会看到挂载在 /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

步骤 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
tecmint@192.168.0.102:/home/tecmint fuse.sshfs  324G   55G  253G  18% /mnt/tecmint

步骤 6:永久挂载远程文件系统

为了永久的挂载远程的文件系统,你须要修改一个叫

/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 的系统】

步骤 7:卸载远程的文件系统

为了卸载远程的文件系统,只须要发出如下的命令便可。

# umount /mnt/tecmint

免费提供最新Linux技术教程书籍,为开源技术爱好者努力作得更多更好:http://www.linuxprobe.com/

相关文章
相关标签/搜索