SFTP (Secure File Transfer Protocol)是一种安全的文件传输协议,基于SSH协议进行加密传输。在进行文件传输时,SFTP客户端通过SSH协议与服务器进行连接,并且通过使用公钥和/或密码进行身份验证,从而确保传输的安全性。SFTP客户端可以使用多种工具进行连接,例如OpenSSH、FileZilla和WinSCP等等。
删除用户并重新创建
# 如果已有相同用户,删掉!
userdel sftpuser # 删除sftpuser这个用户
rm -rf /home/sftpuser # 删除sftpuser这个用户的目录
rm -rf /var/spool/main/sftpuser # 删除系统自动生成的邮箱
#新建sftp组、具体用户 sftpuser
# 新建组
groupadd sftp
# 新建用户
adduser sftpuser
# 添加用户且只能通过sftp登录,不能通过ssh连接
useradd -G sftp -s /sbin/nologin sftpuser
# 输入命令 设置密码 连续输入两次相同密码即可
passwd sftpuser
修改ssh配置文件
# 编辑sshd_config 文件
vi /etc/ssh/sshd_config
# 找到Subsystem sftp /usr/libexec/openssh/sftp-server
# 用 # 注释掉 并添加 一行
Subsystem sftp internal-sftp
## 在末尾加入一下配置信息
#用chroot将用户的根目录指定到sftpuser用户目录
#这样用户 就只能在用户目录下活动。也可用%u,%u代表用户名
Match User sftpuser
ChrootDirectory /data/sftp/sftpuser
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
设定chrootDirectory
#设定Chroot目录权限(必须),用户目录以及组目录以及数据根目录都要设置为755 权限
#不要太高,否则可能报Permission denied的异常
mkdir -p /data/sftp/sftpuser
chown root:root /data/sftp/sftpuser
chmod 755 /data -R
建立SFTP用户登入后可写入的目录
mkdir /data/sftp/sftpuser/workFile
chown bysftp /data/sftp/sftpuser/workFile
#给workFile以及下级文件授权777,否则可能报Permission denied的异常
chmod 777 /data/sftp/sftpuser/workFile -R
重启ssh
service sshd restart
现在你可以使用工具 FileZilla、Transmit等 使用 sftpuser 和设置的密码进行访问啦;
也可以直接在命令行 使用 sftp 你的ip地址