科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Debian下通过SSHFS/SHFS挂载远程文件 (1)

Debian下通过SSHFS/SHFS挂载远程文件 (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

大家可能知道并用过在linux上通过smb,nfs来进行远程文件系统的共享,可是大家是否知道我们现在还可以通过ssh来进行远程文件系统的共享。

作者:fengniao 来源:赛迪网技术社区 2007年10月17日

关键字: 操作系统 Linux 挂载 Debian

  • 评论
  • 分享微博
  • 分享邮件
 

大家可能知道并用过在linux上通过smb,nfs来进行远程文件系统的共享,可是大家是否知道我们现在还可以通过ssh来进行远程文件系统的共享。你可能会说这有什么希奇的,不就是ssh远程登录嘛,再不就是sftp或者scp之类的方式,总之,这些东西熟的不能再熟了。可是我在这里要说的可不是这些东西,我要说的是通过sshfs来将远程主机的文件系统挂载到本地,之后就可以像使用本地文件系统一样使用远程文件系统了。看到这里,大家是否觉得有兴趣了呢?接下来让我们看看到底怎么来作到这点。

实际上,使用sshfs挂载远程主机的方法还不只一种,目前我知道的方法有三种,第一种是通过基于lufs的sshfs子系统来完成,第二种是通过基于fuse的sshfs程序来完成,而第三种直接通过内核支持的shfs模块就可以了。经测试,通过第二种方法来挂载的远程主机文件系统比第一种方法要稳定的多,而第三种方法是最简单也是跟系统接合最好的。第一种方法如果跟autofs来配合,可以更方便的挂载远程文件系统,不过在这样挂载的文件系统上直接打开歌曲或者电影之类的文件可能有些问题,我在以这种方式挂载的系统上听歌时,如果再对这个文件系统上的其他文件进行操作,歌曲就会停止播放。而通过后两种方法挂载的系统就没有这个问题。所以我们这里只说明后两种方法。第一种方法大家如果有兴趣可以自己研究。

这里以debian系统来作说明是因为我使用的系统是debian,我没有在其他linux系统上做过实验,但其他linux系统应该也是可以的。

一、通过sshfs挂载远程主机文件系统

首先,需要下载sshfs,这一步很简单:

# apt-get install sshfs

另外它是基于fuse模块的,所以必须要保证你的内核模块里已经有了这个模块,debian系统的内核默认是没有编译这个模块的,不过安装这个模块在debian下很简单,首先下载fuse的源码包和工具包以及编译需要用到的程序。

# apt-get install fuse-source fuse-utils 
debconf-utils debhelper dpatch gettext 
html2text intltool-debian po-debconf devscripts 
kernel-package dpkg-dev module-assistant

设置环境变量:

# export KVERS=$(uname -r)

# export KSRC=/usr/src/kernel-headers-$KVERS

下载内核头文件:

# apt-get install kernel-headers-$KVERS

现在进入/usr/src内可以找到头文件和fuse模块的源码包,然后我们解压编译。

# cd /usr/src

# tar jxvf fuse.tar.jz

编译fuse模块:

# cd /usr/src/modules/fuse

# debian/rules binary_modules

好,完成编译,编译完的debian包可以在/usr/src/modules/(或者/usr/src/)中找到。

安装刚刚编译的fuse模块。

# dpkg -i /usr/src/modules/fuse*.deb

好了现在第一步完成了。下面可以测试一下是否可以使用sshfs了。

首先创建一个挂载点(这里我以remotehost这个名字为例,你可以使用任何你喜欢的名字):

# mkdir /mnt/remotehost
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章