基于CentOS 7的SFTP配置
基于CentOS 7的SFTP配置
简介
SFTP通过SSH在计算机之前建立安全的链接用作文件传输;通过SFTP可以很方便的将文件传输到你的服务器。
本文将在CentOS 7上通过OPENSSH配置SFTP服务。
创建用户组
Linux中的所有的用户都属于一个(或多个)组,出于安全考虑,为了使批量管理SFTP账户更加容易,需要创建一个SFTP用户的组:
groupadd sftp
可以根据需要随意调整成符合你要求的组名
创建用户
通过以下命令创建用于sftp登录时的用户,并将/sftp目录设置为该用户的家目录
useradd -g sftp -d /sftp -s /sbin/nologin username
说明:
- useradd:添加一个用户
- -g sftp:将新用户添加到
sftp组(即上一步的sftp组) - -d /sftp:将
/sftp设置为该用户的家目录 - -s /sbin/nologin:用户获得
shell程序的访问权限/sbin/nologin,换句话说:不能通过ssh的登录权限
- -g sftp:将新用户添加到
- passwd用户名:设置新用户的密码
创建传输的目录
为新用户创建一个文件夹,通过该用户可以将文件上传到该文件夹
mkdir -p /sftp/username/files
说明:
- 此处的
username就是上一步中创建的用户名 - -p:可以直接创建多级目录
- 也可以将此处的
/sftp/username/files更改到其他位置,例如:- 如果你在
/var/www/example.com/public_html中托管网站,则可以在此处使用/var/www/example.com/public_html - 假如想在主目录中添加一个
SFTP文件夹,可以将/sftp改成/home/username/sftp,该用户username必须存在
- 如果你在
调整文件夹的权限
为了确保sftp的用户最终只有在/sftp/username/files的操作权限,但是在上层的目录没有操作权限,还需要以下操作:
chmod 500 /sftp
chmod 700 /sftp/username/files
chown root:sftp /sftp/username
chown username:sftp /sftp/username/files
说明:
chmod 500 /sftp:仅授予/sftp所有者对/sftp文件夹的读取和执行权限。chmod 700 /sftp:仅授予/sftp/username/files所有者对/sftp/username/files文件夹的读取,写入和执行权限chown root:sftp /sftp/username:使用户root和sftp组成为/sftp/username文件夹的所有者chown username:sftp /sftp/username/files:使用户用户名和/sftp/username/files的ftpusers组(用户名所属的组)的所有者
配置sshd_config
vim /etc/ssh/sshd_config
在末尾添加下面内容:
AllowGroups sftp sshd
Match Group sftp
ChrootDirectory /sftp/%u
ForceCommand internal-sftp
sftp组的所有用户都会被定位到/sftp/%u,此处的%u就是登录的用户名
重启sshd服务
systemctl reload sshd

浙公网安备 33010602011771号