IT码农库

您当前所在位置:首页 > 操作系统 > Ubuntu/Debian

Ubuntu/Debian

Ubuntu上使用SSHfs把远程文件系统挂载到本地目录

互联网 佚名2015-11-19Ubuntu/Debian4748
这篇文章主要介绍了Ubuntu上使用SSHfs把远程文件系统挂载到本地目录的方法,能够简化与服务器之间的文件操作,需要的朋友可以参考下

windows之外的世界比想像中要大得多呢,几乎天天都在用ssh,却到今天才知道有sshfs这个好东西,前几天还在为ZendStudio可以远程编辑文件欣喜,惭愧啊,终于有比vi scp://hostname//path/to/file更方便的方式了。

sshfs,就是可以把ssh连接到的主机资源,映射到本机的文件系统当中,然后用户可以像操作本地文件一样操作,而实际的文件改动将通过ssh传输到远程主机当中。类似于mount了一个windows共享目录,或者另外一台linux主机的samba共享,或者是nfs共享,只是“共享协议”变成了ssh通道罢了。

ubuntu源中已经包含了sshfs了,以及所需的fuse包,直接apt安装就可以了,一共是三个包:“fuse-utils libfuse2 sshfs”,不大,加起来才179k。安装的时候会自动创建用户组fuse,要使用sshfs的用户需要先加到这个用户组里才行(记得完成后还要重新登录),不然会没有权限执行fusermount:

fuse: failed to exec fusermount: Permission denied

复制代码
代码如下:

mkdir ~/remote_folder

在你的系统上创建了本地目录之后,就可以通过 SSHfs 挂载远程文件系统了。

挂载远程文件系统
要在你的机器上挂载远程文件系统,你需要在终端窗口中输入一段较长的命令。

复制代码
代码如下:

sshfs -o idmap=user username@ip.address:/remote/file/system/ ~/remote

20151119104502268.png (701×47)

注意: 也可以通过 SSH 密钥文件挂载 SSHfs 文件系统。只需要在上面的命中用 sshfs -o IdentityFile=~/.ssh/keyfile, 替换 sshfs -o idmap=user 部分。

输入这个命令之后,会提示你输入远程用户的密码。如果登录成功了,你的远程文件系统就会被挂载到之前创建的 ~/remote_folder 目录。
20151119104550063.jpg (700×223)

使用完了你的远程文件系统,想要卸载它?容易吗?只需要在终端输入下面的命令:

复制代码
代码如下:

sudo umount ~/remote_folder

这个简单的命令会断开远程连接同时清空 remote_folder 目录。

总结
在 Linux 上有很多工具可以用于访问远程文件并挂载到本地。但是如之前所说,如果有的话,也只有很少的工具能充分利用 SSH 的强大功能。我希望在这篇指南的帮助下,也能认识到 SSHfs 是一个多么强大的工具。

大图广告(830*140)