sshfs 远程挂载文件系统

SSH 是一个强大且安全的工具,我们除了可以用它来远程管理主机外,还可以通过它建立 SSH tunnel 作 Proxy 用,远程传输文件等等。而这里我想要介绍另外一个功能,那就是结合 sshfs 这个工具可以把远程主机的文件系统映射到本地主机上,透过 SSH 把远程文件系统挂载到本机上,这样我们可以不必使用 scp 工具就可以做到直接复制及删除远程主机的文件了,就像操作本地磁盘一样方便。
sshfs 是基于 FUSE 构建的 SSH 文件系统客户端程序,通过它远程主机的配置无需作任何改变,就可以透过 SSH 协议来挂载远程文件系统了,非常方便及安全。
首先安装epel的yum源方便安装
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
yum -y install sshfs

挂载远程 ssh 文件系统:

sshfs root@192.168.1.218:/home/ /mnt/
sshfs 用户名@远程主机IP:远程主机路径 本地挂载点
sshfs -o transform_symlinks -o follow_symlinks user@hostname: /home/username/sshfs
-o transform_symlinks 表示转换绝对链接符号为相对链接符号
-o follow_symlinks 沿用服务器上的链接符号

 

通过/etc/fstab 开机自动挂载

I was able to make sshfs mount via fstab with Ubuntu 14.04 by doing using the following syntax as a standard user (note anything in CAPS is a variable for you to fill in):

USER@HOST:/REMOTE_DIR /LOCAL_DIR fuse.sshfs delay_connect,_netdev,user,idmap=user,transform_symlinks,identityfile=/home/USERNAME/.ssh/id_rsa,allow_other,default_permissions,uid=USER_ID,gid=USER_GID 0 0
This is a combination of the information found here http://superuser.com/questions/669287/automount-sshfs-using-fstab-without-mount-a and adding the **delay_connect** from here http://askubuntu.com/questions/326977/sshfs-is-not-mounting-automatically-at-boot-despite-etc-fstab-configuration.

I used this tutorial to get my USER_ID and USER_GID: https://kb.iu.edu/data/adwf.html

To find a user’s UID or GID in Unix, use the id command. To find a specific user’s UID, at the Unix prompt, enter:

id -u username

Replace username with the appropriate user’s username. To find a user’s GID, at the Unix prompt, enter:

id -g username