搭建sftp服务器

2020-12-10  本文已影响0人  叶迎宪

网上大部分文章都是人云亦云,能把为什么这么设置讲得清楚的,可以参考这两篇
https://blog.csdn.net/qq_15000459/article/details/108108625
https://www.maixj.net/ict/ssh-sftp-21993

我的需求是可以设置多个账号,可以共享访问目录,可以看到某个文件是谁创建的

首先要创建用户组

groupadd sftp

然后在这个组内添加用户

useradd -g sftp -s /sbin/nologin -M sftp_test
useradd -g sftp -s /sbin/nologin -M sftp_app

-g用于指定用户组,-s用于指定login shell,用/sbin/nologin则不允许该用户ssh登录。-M表示不创建该用户的home目录

接着给这些用户生成密码

passwd sftp_test

接着,准备ftp的根目录。我用的是/home/sftp。按照规则,这个根目录/home/sftp拥有者只能是root,而且权限最高位755。如果这个目录是用root用户创建的,则默认就是满足的。为了给sftp用户传文件,只能在/home/sftp下面再建一层子目录,把这层子目录的拥有者改为sftp组的某个用户,并把权限改为775,让组内其他成员也可以读写

mkdir -p /home/sftp/upload
cd /home/sftp
chown sftp_test:sftp upload
chmod 775 upload

再然后,就是修改sshd的配置了。vi /etc/ssh/sshd_config,注释掉
Subsystem sftp /usr/libexec/openssh/sftp-server
一行,然后加上

Subsystem sftp internal-sftp  #配置开启sftp
Match Group sftp  #配置允许访问组
  ChrootDirectory /home/sftp #配置组用户登录的根目录
  X11Forwarding no
  AllowTcpForwarding no
  PermitTTY no

重启sshd

systemctl restart sshd
上一篇下一篇

猜你喜欢

热点阅读