Ubuntu 下使用 sshfs 挂载远程目录到本地
参考链接:http://blog.csdn.net/netwalk/article/details/12952719
一、Ubuntu 上安装sshfs
Ubuntu源中已经包含了sshfs,以及所需的fuse包,直接安装即可:
sudo apt-get install sshfs
安装的时候会自动创建用户组fuse,要使用sshfs的用户需要先加到这个用户组里才行(记得完成后还要重新登录),不然会没有权限执行fusermount:
fuse: failed to exec fusermount: Permission denied
二、挂载远程文件系统/目录
挂载的一般格式为:
sudo sshfs {{user id}}@{{server hostname}}:{{desiredremote share}} {{desired local mount point}} -o idmap=user -o allow_other -ouid={{local user id}} -o gid={{local group id}}
其中比较重要的选项有:
-o transform_symlinks 表示转换绝对链接符号为相对链接符号 -o follow_symlinks 沿用服务器上的链接符号 -C 压缩,或者-o compression=yes -o reconnect 自动重连 -o cache=yes -o allow_other
挂载格式看起来比较繁琐,这里给出一个常用的更加简洁的格式:
sshfs -o transform_symlinks -ofollow_symlinks user@hostname:[dir] mountpoint
一个使用的实例如下(前一个user是远程主机的user,后一个是本地主机的user):
sshfs –o cache=yes,allow_other user@192.168.1.200:/home/user/code home/user/code
说明:
1、 连接的时候可能需要管理员权限,在挂载命令前sudo即可。
2、更多参数请 man sshfs ,如果碰到其它问题请参考官方的 FAQ 。
3、如果想不输入密码的话,可以使用 SSH key 认证方式。
4、执行命令后 Ubuntu 会自动在桌面上显示挂载的 sshfs 文件系统盘,现在你就可以像操作本地磁盘一样操作这个映射的磁盘了。
三、卸载
fusermount –u /home/user/code
注意权限的使用,可能需要使用 sudo。