您的足迹:首页 > Linux >Centos 7 配置sftp登陆及权限配置

Centos 7 配置sftp登陆及权限配置

未标题-1.png


web项目的上传大多数人还是习惯用ftp,当然也有git和svn这些上传方式,该文章主要讲到ftp的上传,sftp在ftp当中是相当配置简单的一种,它主要是依赖SSH的,所以一般系统都会自带的,而且由于它依赖SSH所以也可以进行证书验证登陆,所以安全性还是比较高的。

从技术角度来分析,几个要求:
1、从安全方面看,sftp会更安全一点
2、线上服务器提供在线服务,对用户需要控制,只能让用户在自己的home目录下活动
3、用户只能使用sftp,不能ssh到机器进行操作


下面开始讲解sftp的配置

1、创建sftp组

# groupadd sftp


2、创建一个不能登陆ssh的sftp用户,名为amaple

#useradd -G sftp -s/sbin/nologin amaple


3、设置amaple账号的密码,然后自己输入自己的密码就行了

# passwd amaple


4、sftp组的用户的目录统一指定到/sftp下,所以首先我们要先创建/sftp,并赋值权限

# mkdir /sftp

# chown -R root:root /sftp

# chmod 755 /sftp


5、在/sftp目录下按用户名区分创建属于自己的目录,这里我们先创建一个amaple的目录,并赋值权限

# mkdir /sftp/amaple


# chown -R root:root /sftp/amaple

# chmod 755 /sftp/amaple



6、配置sshd_config

# vi /etc/ssh/sshd_config

找到如下这行,并注释掉
Subsystem      sftp    /usr/libexec/openssh/sftp-server  


添加如下几行
Subsystem       sftp    internal-sftp  
Match Group sftp  
ChrootDirectory /sftp/%u  
ForceCommand    internal-sftp  
AllowTcpForwarding no  
X11Forwarding no 


7、创建存放web项目的目录,并且赋值权限

# mkdir  /sftp/amaple/web

# chown -R amaple:sftp /sftp/amaple/web

# chmod -R  755  /sftp/amaple/web


8、重启sshd服务

service sshd restart 


9、然后试着用ftp工具上传,而且选择项要是sftp才可以。



    a)如果懂得setfacl和getfacl个人建议用这种方式赋值权限更加妥当。

    b)解释一下添加的几行的意思

   Subsystem       sftp    internal-sftp  
   这行指定使用sftp服务使用系统自带的internal-sftp

   Match Group sftp  
   这行用来匹配sftp组的用户,如果要匹配多个组,多个组之间用逗号分割

   当然,也可以匹配用户
   Match User amaple
   这样就可以匹配用户了,多个用户名之间也是用逗号分割,但我们这里按组匹配更灵活和方便

   ChrootDirectory /sftp/%u  
   用chroot将用户的根目录指定到/sftp/%u,%u代表用户名,这样用户就只能在/sftp/%u下活动,chroot的含义

   ForceCommand    internal-sftp  
   指定sftp命令

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


本博客所有文章如无特别注明均为原创。作者:潇潇枫叶复制或转载请以超链接形式注明转自 木风溪
原文地址《Centos 7 配置sftp登陆及权限配置

相关推荐

发表评论

路人甲 表情
Ctrl+Enter快速提交

网友评论(0)