sshfs把远程主机的文件系统映射到本地的目录中
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/329)的形式标明文章原始出处和作者信息及本声明。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
使用就简单的多了,一般来说,连接远程主机到本地用户:
sshfs user@hostname:path mount_point
需要输密码就输密码,当然配置成自动登录的ssh更方便了。用完之后要umount,可以:
fusemount -u mount_point
都是在普通用户非sudo的环境下使用,非常方便的。如果想每次开机都自动挂载,可以在/etc/fstab中加入:
sshfs#user@hostname:path mount_point fuse defaults,auto,allow_other 0 0
这就要求必须先把ssh自动登录配置好了,让root用户能够使用user身份登录远程主机,另外allow_other这个参数很重要,没有这个参数的话,挂载过来的目录只有root能够访问。
关于自动挂载,参考文章中andot用脚本实现的方式也不错,建议大家看看去。
参考:
- 老外经验谈使用sshfs装备远程文件系统
- SSH入门
- 在debian下通过sshfs/shfs挂载远程主机文件系统
- Home Server
- FUSE简介
- FUSE:用户空间文件系统
- Mounting a fuse Filesystem from /etc/fstab

Save to Browser Favorites
Ask
backflip
blinklist
BlogBookmark
Bloglines
BlogMarks
Blogsvine
BUMPzee!
CiteULike
co.mments
Connotea
del.icio.us
DotNetKicks
Digg
diigo
dropjack.com
dzone
Facebook
Fark
Faves
Feed Me Links
Friendsite
folkd.com
Furl
Google
Hugg
Jeqq
Kaboodle
linkaGoGo
LinksMarker
Ma.gnolia
Mister Wong
Mixx
MySpace
MyWeb
Netvouz
Newsvine
PlugIM
popcurrent
Propeller
Reddit
Rojo
Segnalo
Shoutwire
Simpy
sk*rt
Slashdot
Sphere
Sphinn
Spurl.net
Squidoo
StumbleUpon
Technorati
ThisNext
Webride
Windows Live
Yahoo!
Email This to a Friend
If you like this then please subscribe to the
June 4th, 2007 at 12:07:52
我没太看明白sshfs的好处是什么。映射到本地目录更方便浏览和编辑?
我一般如果是复制文件、是直接用ubuntu中 位置-连接到服务器 然后用ssh连接到我要访问的服务器,之后在密钥环中保存密码就可以了。
如果给远端服务器建立一个alias,这样就可以scp file.txt server 应该更方便。
在terminal中我还是用key登录。之后要做什么整体系统的操作用sudo,再输入一下密码。大部分操作都是普通用户就可以了。
我没有开启root帐号。
[Reply]
June 5th, 2007 at 1:30:03
不往fstab里面放,就不用动root帐号的
sshfs的好处就是,只要你有远程主机的ssh权限,
就可以把上面的目录映射为本机的一个目录
这样你不仅用cp达到以前scp的目的
而且其他的应用程序,比如gedit,gimp什么的
就可以像访问本机文件一样直接访问远程服务器上的文件了。
当然,使用不频繁的情况下,ssh依然是最简便的。
[Reply]
June 8th, 2007 at 5:54:18
请教,为什么我把用户名加到 fuse 组里,还会出现:
fuse: failed to exec fusermount: Permission denied
错误提示呢?
[Reply]
June 8th, 2007 at 6:11:43
请教为什么我把用户名加入到了 fuse 组中,依然出现错误?
fuse: failed to exec fusermount: Permission denied
[Reply]
June 8th, 2007 at 9:31:45
@Michael
需要重启一下才行,不然用户的组设置无效的
[Reply]
June 14th, 2007 at 16:34:36
另外狼兄你知不知道为什么我把自己加到 fuse 组里:
usermod -G fuse michael
但这一句一执行,虽然我被加入到了 fuse 里,但直接导致 michael 不在 /etc/sudoers 里了,必须要手动加入才能再执行 sudo 命令,我试了几次都是这样,为什么呢?
[Reply]
June 14th, 2007 at 21:11:23
只有admin组的用户才能使用sudo
所以你那样设置就等于把user从admin组去掉了
(ubuntu默认安装会把第一个普通用户加到admin组)
然后当然就无法sudo了啊
我都是直接修改group文件的,省事
[Reply]
June 15th, 2007 at 7:25:12
直接修改 group 文件真是个好办法,看来我还是太不熟悉 Linux 啊。
[Reply]
July 12th, 2007 at 7:28:33
[...] sshfs把远程主机的文件系统映射到本地的目录中 - Fwolf’s Blog sshfs,就是可以把ssh连接到的主机资源,映射到本机的文件系统当中,然后用户可以像操作本地文件一样操作,而实际的文件改动将通过ssh传输到远程主机当中。 (tags: ssh 映射 共享 linux) [...]
September 22nd, 2007 at 22:43:36
Linux的东西不太熟
[Reply]
March 18th, 2008 at 8:38:13
Michael:
adduser username groupname 这样比 usermod 安全点,只会将一个已有用户加入一个已有组,不会把用户从原所在组(很多个)中移除。
[Reply]
March 29th, 2008 at 23:10:49
[...] linux 授权方式:署名,非商业用途,保持一致,转载时请务必以超链接( http://www.fwolf.com/blog/post/329 [...]