前言:容易忘,记录一下,快速配置一个sftp用户,用于自动部署。
一、快速配置
1、输入命令
1 | adduser sftpuser1 |
2、打开 sshd_config 文件
1 | vi /etc/ssh/sshd_config |
找到 Subsystem sftp 这一行,修改成:
1 | Subsystem sftp internal-sftp |
多个用户请重复配置这三行:
1 | Match user sftpuser2 |
3、重新启动 sshd 服务
1 | /etc/init.d/sshd restart |
4、设置用户目录
1 | mkdir /var/www/html |
5、其他(CI相关
将CI的cache文件夹设置为 nginx 拥有者
1 | chown -R www-data:www-data /application/cache |
二、需要注意的问题
1、修改 sshd_config 时,顺序需要正确,否则会提示Directive 'UseDNS' is not allowed within a Match block
正确的顺序:
1 | UseDNS no |
2、设置目录权限的时候,需要遵循:
1、由 ChrootDirectory 指定的目录 往上到系统根目录为止的 目录拥有者 都只能是 root
2、由 ChrootDirectory 指定的目录开始一直往上到系统根目录为止都 不可以具有群组写入权限(最大权限 755)
如果违反了上面的两条要求,那么就会出现新用户访问不了 sftp 的情况。
所以在这里设定www为用户的家文件夹,然后下面的html文件夹为sftpuser1拥有。
三、其他(关于权限
下面为用户权限
1 | root@localhost:/var/www# ls -ls |
最后一行,表示文件夹拥有者为sftpuser1,所属组为属组root。
可以通过 chmod 来修改文件拥有者或归属组。
1 | chown -R sftpuser1 /var/www/html |
参考文档: