Centos sshfs的安装和使用--将远程sftp目录映射到本地目录

51 篇文章 0 订阅

Linux服务器上可以使用sshfs将远程文件系统映射到本地目录。使用起来更方便。

1. sshfs软件安装

#ubuntu上安装

apt-get install sshfs


#Fedore上安装

yum install fuse-sshfs


#CentOS上安装

方法1:yum安装

默认源无该工具,需要先安装EPEL源

yum install -y epel-release

yum -y install fuse-sshfs


yum list fs-sshfs

Installed Packages
fuse-sshfs.x86_64                2.5-1.el7                @epel

方法2:下载rpm安装

下载rpm文件for Centos7:

wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/fuse-sshfs-2.5-1.el7.rf.x86_64.rpm


需要先下载安装fuse(安装fuse-sshfs依赖于fuse)

yumdownloader fuse-libs

yumdownloader  fuse

rpm -Uvh fuse-libs-2.9.2-7.el7.x86_64.rpm

rpm -Uvh fuse-2.9.2-7.el7.x86_64.rpm


安装fuse-sshfs

# rpm -ivh fuse-sshfs-2.2-1.el7.rf.x86_64.rpm 

如果fuse没有安装,会报错:

warning: fuse-sshfs-2.2-1.el7.rf.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
error: Failed dependencies:
        fuse >= 2.2 is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
        libfuse.so.2()(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
        libfuse.so.2(FUSE_2.2)(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
        libfuse.so.2(FUSE_2.5)(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
        libfuse.so.2(FUSE_2.6)(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64
        libfuse.so.2(FUSE_2.7)(64bit) is needed by fuse-sshfs-2.2-1.el7.rf.x86_64


方法3:编译安装
下载:https://github.com/libfuse/sshfs/releases
当前最新版本:sshfs-3.2.0.tar.gz
tar xvf sshfs-3.2.0.tar.gz
./configure --prefix=/usr/local/sshfs
make
make install


2. sshfs使用--挂载目录

语法:

sshfs user@hostname:path mout_point

举例:

先创建一个挂载点目录:

mkdir /mnt/sftpSrvData

挂载远程目录到本地挂载点目录:

本地服务器

sshfs -o ro root@127.0. 0. 0:/opt/sftpSrvRootDir  /mnt/sftpSrvData

远程服务器

sshfs -o ro root@192.168.100.111:/opt/sftpSrvRootDir  /mnt/sftpSrvData

常用参数:

-o ro: 只读方式挂载。如果不指定参数,默认是读写方式挂载。

-o rw: 读写方式挂载。如果不指定参数,默认读写方式挂载。



设置开机自动挂载

vim /etc/fstab 加入下面一行: 

sshfs#user@hostname:path mount_point fuse defaults,auto,allow_other 0 0 

需要设置服务器之间允许SSH无密码登录,系统重启之后才能自动挂载文件系统。

如果服务器配置为基于SSH密钥的认证方式,则/etc/fstab中加入如下行:

sshfs#user@hostname:path mount_point fuse IdentityFile=~/.ssh/id_rsa defaults,auto,allow_other 0 0 

接下来,你需要更新 fstab 文件使修改生效。

# mount -a 


3.卸载挂载目录
fusermount -u mount_point 

如果出现提示:device is busy

可继续通过下面命令卸载:umount -fl ./sftpSrvData 


常见问题:

操作权限问题

出现执行挂载命令以后,shell命令可以直接进入挂载点操作,但远程程序一直无法操作成功。原因是需要加上 -o 参数:

sshfs root@192.168.100.111:/opt/sftpSrvRootDir  /mnt/sftpSrvData  -o allow_other

如果使用-o参数,需要增加一个配置文件:/etc/fuse.conf,添加一行记录,

vim /etc/fuse.conf

user_allow_other


  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值