环境
CentOS7
SSHFS:2.10
安装
安装装EPEL源
yum install epel-release
安装sshfs
yum install sshfs
配置
使用如下命令进行挂载
sshfs -p 22 root@192.168.1.21:/ /app1/
#输入密码后确认挂载
#允许其他用户访问
sudo sshfs -o allow_other tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
#无密码登录
sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint
设置开机自启动挂载
touch auto.sh
写入开机启动脚本:
echo 远程主机密码 | sshfs 远程主机用户@远程ip:/OA/RP/ /root/test -o workaround=rename -o password_stdin -o allow_other
chmod +x auto.sh
vim /etc/rc.d/rc.local
写入 sh /home/autosu.sh
chmod +x /etc/rc.d/rc.local //开机自动启动
#去挂载目录查看
cd /app1/
ll
#查看挂载情况
如需取消:
#umount掉挂载点即可
umount /app1
开机自动挂载方案:
1. 在系统启动时挂载
crontab -e
------------------------------------------
@reboot sh mountsshfs.sh
vim mountsshfs.sh
------------------------------------------
#! /bin/sh
while true
do
ping -c1 -w1 ssh_server_ip > /dev/null && break
done
sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 user@192.168.200.10:/pathto/dir /home/username/mount/dir
2.利用/etc/fstab
user@host:/remote/folder /mount/point fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/user/.ssh/id_rsa,allow_other,reconnect 0 0
参数
noauto 不在boot时mount
x-systemd.automount 配置按需挂载
_netdev 避免“No such device”错误,指明sshfs是一个网络设备而非块设备
注意:在完成对/etc/fstab的修改后,需要执行如下命令
systemctl daemon-reload
systemctl restart
这里 可以使用如下命令查询
systemctl list-unit-files --type automount
注意事项
- 挂载在重启后失效
- 一般来说,linux系统都默认安装了sftp,挂载期间基本不用考虑sftp服务。
- Windows下可使用其他第三方软件开启sftp服务,或通过smb进行挂载 [CentOS]CentOS 7下通过mount cifs挂载smb资源