Debian 10 配置SFTP
2022-11-06
2 min read
这里是给自己的blog一个sftp的上传通道,所以用户名 文件夹都叫blog
创建用户组
groupadd blog
创建用户并不允许该用户登录
mkdir -p /usr/share/sftp
useradd -g blog -s /bin/nologin -d /usr/share/sftp blog
# 删除用户 userdel blog
# 查看用户 cat /etc/passwd
设置密码
passwd blog
配置sshd_config
# vi /etc/ssh/sshd_config
屏蔽下方这行
#Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下几行
Subsystem sftp internal-sftp #这行指定使用sftp服务使用系统自带的internal-sftp
Match User blog #这行用来匹配用户
ChrootDirectory /usr/share/sftp #用chroot将用户的根目录指定到/usr/share/sftp ,这样用户就只能在/usr/share/sftp下活动
AllowTcpForwarding no
ForceCommand internal-sftp #指定sftp命令
为什么用 internal-sftp 而不用默认的 sftp-server,这是因为:
这是一个进程内的 sftp 服务,当用户 ChrootDirectory 的时候,将不请求任何文件;
更好的性能,不用为 sftp 再开一个进程
重启sshd服务
# systemctl restart sshd.service
设定Chroot目录权限
# chown -R root:root /usr/share/sftp
# chmod 755 /usr/share/sftp
建立SFTP用户登入后可写入的目录并授权
# mkdir -p /usr/share/sftp/blog
chown -R blog:blog /usr/share/sftp/blog
chmod 755 /usr/share/sftp/blog
测试是否能连接
sftp -P 22 blog@127.0.0.1
# 查看上传路径
sftp> ls