ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

centos7 上部署sftp-实测可用

2020-08-21 16:31:59  阅读:286  来源: 互联网

标签:sftpuser 用户 sftp centos7 实测 权限 root 目录


1、使用root用户创建用户组,组名为sftpgroup;创建sftp用户,用户名为sftpuser,并设置密码

groupadd sftpgroup // 创建sftp组
useradd -g sftpgroup -M -s /sbin/nologin sftpuser //-M 表示创建用户时不生成对应home目录,-s /sbin/nologin 表示sftp用户不能登录系统
passwd sftpuser // 修改sftp用户密码

2、修改配置文件sshd_config

vi /etc/ssh/sshd_config

修改如下:

将下面这行注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
## 在文件末尾添加如下几行
Prot 22022
Subsystem sftp internal-sftp
Match Group sftpgroup
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /sftp/%u  
ForceCommand internal-sftp
-----------------------------------------------------------------------------------------------------------------------------
示例解释:
Match Group sftp                         # 这一行是指定以下的子行配置是匹配 sftp 用户组的。Match user userA,userB 则是匹配用户。
ChrootDirectory /sftp/%u     # 设定属于用户组 sftp 的用户访问的根文件夹。%h 代表用户 home 目录,%u 代表用户名。
ForceCommand internal-sftp      # 该行强制执行内部 sftp,并忽略任何 ~/.ssh/rc 文件中的命令。
AllowTcpForwarding no              # 是否允许 TCP 转发,默认值为 "yes", 禁止 TCP 转发并不能增强安全性,除非禁止了用户对 shell 的访问,因为用户可以安装他们自己的转发器。
X11Forwarding no                      # 是否允许进行 X11 转发。默认值是 "no",设为 "yes" 表示允许。如果允许 X11 转发并且 sshd(8)代理的显示区被配置为在含有通配符的地址(X11UseLocalhost)上监听。那么将可能有额外的信息被泄漏。由于使用 X11 转发的可能带来的风险,此指令默认值为"no"。需要注意的是,禁止 X11 转发并不能禁止用户转发 X11 通信,因为用户可以安装他们自己的转发器。

3、使用root创建新目录,并将其设置为sftpuser的home目录,并指定目录权限

mkdir -p /sftp/sftpuser //-p 表示parents,即递归创建目录
usermod -d /sftp/sftpuser sftpuser // -d 表示修改用户home(家)目录
#  设置Chroot目录权限
chown root:root /sftp/sftpuser
chmod 755 /sftp/sftpuser

// 设置sftp用户可以操作的目录
mkdir /sftp/sftpuser/upload
chown sftpuser:sftpgroup /sftp/sftpuser/upload
chmod 755 /sftp/sftpuser/upload

要实现 Chroot 功能, 目录权限的设置非常重要 。否则无法登录,给出的错误提示也让人摸不着头脑,无从查起。我在这上面浪费了很多时间。

ChrootDirectory:定义了用户通过认证以后的 chroot 目录,此目录及其所有子目录的属主必须是 root,且这些目录只有 root 帐号可以进行写操作,其他任何组和帐号都不可写。chroot 以后,sshd 会将用户的工作目录转到 chroot 目录中用户自己的主目录。如果 ChrootDirectory 定义的目录下没有相应的 /home/username 目录,则会直接转到 chroot 的 / 目录下。
目录权限设置上要遵循2点:

ChrootDirectory 设置的目录权限及其所有的上级文件夹权限,属主和属组必须是 root;
ChrootDirectory 设置的目录权限及其所有的上级文件夹权限,只有属主能拥有写权限,权限最大设置只能是 755。

4、重启sshd

systemctl restart sshd.service

5、验证:sftp -P22022 sftpuser@ip

参考:
https://www.cnblogs.com/reachos/p/11737382.html
https://blog.csdn.net/zhichao_qzc/article/details/80301994

标签:sftpuser,用户,sftp,centos7,实测,权限,root,目录
来源: https://www.cnblogs.com/li-dy/p/13541753.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有