1、新建sftp用户组 && sftp 用户家目录
groupadd sftp mkdir -p /sftpdata/sftp/
2、新建sftp用户
useradd -d /sftpdata/sftp/tester -m -g sftp -s /sbin/nologin tester passwd tester
3、赋权
PS: tester 属主为root(必须),属组为sftp(必须),权限不大于755
chown root:sftp -R /sftpdata/sftp/tester chmod 755 /sftpdata/sftp/tester
4、设置可以写入的目录
PS:upload属主属组也固定,如下
mkdir /sftpdata/sftp/tester/upload chown tester:sftp /sftpdata/sftp/tester/upload chmod 755 /sftpdata/sftp/tester/upload
6、配置sshd_config
vim /etc/ssh # 注释:Subsystem sftp /usr/libexec/openssh/sftp-server # 追加下面内容 Subsystem sftp internal-sftp Match Group sftp ChrootDirectory /sftpdata/sftp/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
重启ssh
systemctl restart sshd
7、测试
PS: ssh端口非22, -P $PORT
sftp -P 22 tester@192.168.199.201
8、自动上传脚本(放在客户端),需要lftp命令
#!/bin/bash
export PATH=$PATH:/sbin:/bin:/usr/local/sbin:/usr/local/bin
# SFTP服务器
IP=192.168.199.201
# 上传文件所在目录
SRCDIR=/var/log/
# 上传文件名字
FILENAME=secure
# SFTP目的目录,注意这个才是正确写法
DESDIR=/upload
# 对端FTP服务器的用户名&&密码&&端口
USER=tester
PASSWD="1"
PORT=22
lftp -u ${USER},${PASSWD} sftp://${IP}:${PORT} <


