0
点赞
收藏
分享

微信扫一扫

CentOS7下通过sshfs挂载sftp资源

新鲜小饼干 2023-06-09 阅读 48

一、root用户进行普通挂载

1.1、安装epel源

yum -y install epel-release

1.2、安装sshfs

yum -y instll sshfs

1.3、配置挂载

sshfs -p 22 root@10.163.1.137:/home/sftpdata /app1

1.4、取消挂载

# umount掉载点即可
umount /app1

1.5、注意事项

挂载在重启后失效

一般来说,linux系统都默认安装了sftp,挂载期间基本不用考虑sftp服务

windows下可使用其他第三方软件开启sftp服务,或通过smb进行挂载 

二、安全挂载

目的:通常SFTP的任何用户登录之后能看到整个系统的文件目录,这样很不安全。

通过chroot我们可以将某个用户登录SFTP后只能在某个限定的目录下操作,这样可以更安全。

2.1、创建一个用于SFTP登录的用户

useradd sftpuser

2.2、给该用户设置一个密码

passwd sftpuser

2.3、禁止该用户登录SSH

# 因为我们只想该用户使用SFTP,并不需要该用户能登录SSH
vim /etc/passwd
# 将sftpuser的shell改成/bin/false

2.4、设置sshd\_config

vim /etc/ssh/sshd_config
# Subsystem      sftp    /usr/libexec/openssh/sftp-server  找到这一行注释掉,新增以下内容

Subsystem sftp internal-sftp
Match user sftpuser
ForceCommand internal-sftp
ChrootDirectory /home/sftpdata

将 上面的 /home/sftpdata 目录替换成你需要限定的实际目录,请注意该目录的用户属主必须是root,并且该目录的上级的每一级目录的属主也必须是root。如果上级目录不可以设置成root,那可以通过建立符号链接  ln -s 来变相实现。

chown root\:sftpuser /home/sftpdata

多个用户请重复配置这三行:

Match user sftpuser2
ForceCommand internal-sftp
ChrootDirectory /home/sftpdata2

2.5、重新启动sshd服务

systemctl restart sshd

2.6、开始挂载

sshfs -p 22 sftpuser@10.163.1.137: /app1
sftpuser@10.163.1.137's password: 
[root@host ~]# df -TH
Filesystem              Type        Size  Used Avail Use% Mounted on
/dev/mapper/centos-root xfs         8.6G  1.7G  7.0G  20% /
devtmpfs                devtmpfs    2.1G     0  2.1G   0% /dev
tmpfs                   tmpfs       2.1G     0  2.1G   0% /dev/shm
tmpfs                   tmpfs       2.1G  8.9M  2.1G   1% /run
tmpfs                   tmpfs       2.1G     0  2.1G   0% /sys/fs/cgroup
/dev/sda1               xfs         1.1G  203M  861M  20% /boot
tmpfs                   tmpfs       415M     0  415M   0% /run/user/0
sftpuser@10.163.1.137:  fuse.sshfs  8.6G  1.6G  7.1G  19% /app1

# 但此时还不能写文件,需要给被挂载文件夹赋予权限
[root@host app1]# mkdir 123
mkdir: cannot create directory ‘123’: Permission denied

# 给被挂载文件夹赋予权限
[root@server ~]# chmod 775 /home/sftpdata/

# 此时就可以写文件
[root@host app1]# rz
rz waiting to receive.
  zmodem  trl+C ȡ
正在传输 SecureCRTPortable.exe...
  100%     133 KB     133 KB/  00:00:01       0   

# 但取消挂载或重启电脑后再重新挂载会失败
[root@host ~]# umount /app1
[root@host ~]# sshfs -p 22 sftpuser@10.163.1.137: /app1
sftpuser@10.163.1.137's password: 
read: Connection reset by peer

# 需要将被挂载点的文件夹权限改回,才可以重新挂载
[root@server ~]# chmod 755 /home/sftpdata/

2.7、测试ssh连接

[root@host ~]# ssh sftpuser@10.163.1.137
sftpuser@10.163.1.137's password: 
This service allows sftp connections only.
Connection to 10.163.1.137 closed.

举报

相关推荐

0 条评论