# sftp命令,依赖ssh服务,内置的命令。
[root@server ~]# which sftp
/usr/bin/sftp
1、创建一个用户,用于传输文件
groupadd testsftp
useradd -g testsftp -s /usr/sbin/nologin -d /data/sftp/testsftp/ testsftp
echo "xxxxxxx" | passwd --stdin testsftp ###(xxxxx密码自行修改)
2、创建sftp访问目录
mkdir -p /data/sftp/testsftp/test
chown root:root /data/sftp/testsftp/
chmod 777 /data/sftp/testsftp/
chown testsftp:testsftp /data/sftp/testsftp/test
chmod 775 /data/sftp/testsftp/test
3、配置sshd服务,配置为sftp服务器。其他主机可以通过ssh协议连接到sftp服务器,将图片上传或下载到sftp服务器的指定目录。
[root@server ~]# vim /etc/ssh/sshd_config
# override default of no subsystems
#(1)注释这行
# sftp默认配置,sshd服务自带的。
# Subsystem sftp /usr/libexec/openssh/sftp-server
#(2)sftp高级配置,放到文件最后。
Subsystem sftp internal-sftp
Match Group testsftp
#ChrootDirectory /data/sftp/testsftp # 如果切根,连接sftp后就是在目录/;如果不切根,连接sftp后就是在目录/data/sftp/testsftp;这里建议不切根。
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
[root@server ~]# sshd -t
[root@server ~]# systemctl restart sshd
4、访问测试
sftp -P 22 testsftp@192.168.10.10