1. 创建SFTP账号
# 创建组
groupadd sftp
# 创建账号, 不能通过ssh登录
#useradd -g 所属组 -d 指定家目录 -s /sbin/nologin 用户名
useradd -g sftp -d /upload -s /sbin/nologin zzzxb
# 设置密码
# passwd 用户名
passwd zzzxb
2. 创建SFTP目录
# 创建SFTP目录
mkdir -p /data/sftp/upload
# chomd 用户权限 组权限 其它权限
# 0 无权限 1 x 执行 2 w 写 4 r 写
# root 用户拥有所有权限,组用户没有任何权限,其它用户如果可以可以通过cd进入目录内部,不能ls查看,需要清楚目录内部信息才能进去
chmod 701 /data
# 授权数据目录只能root用户查看
chown -R root:sftp /data/sftp
# 为用户创建一个属于他自己的目录
chown -R zzzxb:sftp /data/sftp/upload
3. 修改配置
vim /etc/ssh/sshd_config
组管理
#Subsystem sftp /usr/libexec/openssh/sftp-server
# 需要把上边这一行注释掉换成下边这个
Subsystem sftp internal-sftp
Match Group sftp
# 组用户跟目录
ChrootDirectory /data/sftp
# 限制用户只能通过sftp命令
ForceCommand internal-sftp
# 禁用X11转发功能
X11Forwarding no
# 禁用 TCP 转发功能
AllowTcpForwarding no
检查SFTP状态
- 检查配置:
sshd -t
- 查看状态:
service sshd status
或systemctl status sshd
- 重启服务:
service sshd restart
或systemctl restart sshd
SFTP 基础命令
- 查看远程目录:
ls
- 查看本地目录:
lls
- 查看远程路径:
pwd
- 查看本地路径:
lpwd
- 上传文件:
put local_file remote_path
- 上传文件夹:
put -r floader_name remote_path
- 下载文件:
get remote_file local_path
- 下载文件夹:
get -r floader_name local_path
- 退出SFTP:
exit
- 指定端口连接SFTP:
sftp -P 端口 username@password
- 默认端口连接SFTP:
sftp username@password