SFTP配置


具体配置步骤:

1. 创建一个专门的用户组和用户

#创建sftp组
groupadd sftp

#创建一个sftp用户,用户名为ylh
useradd -g sftp -s /bin/false ylh

#修改密码
passwd ylh

注意,这里将shell设置为/bin/false使其没有登陆shell的权限

  

2.指定目录

#sftp组的用户的home目录统一指定到/data/sftp下
mkdir -p /data/sftp/ylh  

#然后指定ylh的home为/data/sftp/ylh
usermod -d /data/sftp/ylh ylh

 

3.编辑/etc/ssh/sshd_config

#编辑sshd_config
vi /etc/ssh/sshd_config

#输入/Subsystem搜索到下列内容,注释掉原有的
# Subsystem      sftp    /usr/libexec/openssh/sftp-server

#改为internal-sftp
Subsystem       sftp    internal-sftp

为什么使用 internal-sftp 而不用默认的 sftp-server,这是因为:

  • 这是一个进程内的 sftp 服务,当用户 ChrootDirectory 的时候,将不请求任何文件;
  • 更好的性能,不用为 sftp 再开一个进程。

 

4.设定属于用户组sftp的用户都只能访问他们自己的home文件夹

在sshd_config文件结尾添加:

# 匹配用户组,如果要匹配多个组,多个组之间用逗号分割
Match Group sftpusers

# 指定登陆用户到自己的用户目录
ChrootDirectory /data/sftp/%u

# 指定 sftp 命令
ForceCommand internal-sftp

# 这两行,如果不希望该用户能使用端口转发的话就加上,否则删掉
X11Forwarding no
AllowTcpForwarding no

 

5.增加上传权限

chown ylh:sftp /data/sftp/ylh 
chmod 755 /data/sftp/ylh

 

6.重启sshd服务

service sshd restart
//systemctl restart sshd

 

7.参考链接

https://www.jianshu.com/p/8da79294a46f

https://segmentfault.com/a/1190000008578734

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM