You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Debian 11下SFTP用户sftpuser连接失败问题求助

Debian 11下SFTP用户sftpuser连接失败问题求助

嗨,别着急!从你描述的情况来看,大概率是SFTP相关的目录权限或者用户配置出了问题——毕竟SFTP对目录权限的要求特别严格,咱们一步步来排查修复:


第一步:检查sftpuser的用户属性

SFTP用户通常是被限制不能登录系统的,先确认这个设置没被改动:
执行命令:

cat /etc/passwd | grep sftpuser

正常输出应该类似:

sftpuser:x:1001:1001::/home/sftpuser:/usr/sbin/nologin

重点看最后一段,如果是/bin/bash这类可登录的shell,就用下面的命令修改:

sudo usermod -s /usr/sbin/nologin sftpuser

第二步:核对SSH配置文件里的SFTP规则

打开SSH的配置文件检查:

sudo nano /etc/ssh/sshd_config

找到你之前配置的针对sftpuser的区块,确保内容类似这样(重点看标注的部分):

Match User sftpuser
    ForceCommand internal-sftp  # 强制使用SFTP,禁止shell登录
    PasswordAuthentication yes  # 开启密码认证(如果你用密码登录的话)
    ChrootDirectory /home/sftpuser  # 限制用户只能访问这个目录
    PermitTunnel no
    AllowAgentForwarding no
    AllowTcpForwarding no
    X11Forwarding no

修改完记得重启SSH服务生效:

sudo systemctl restart sshd

第三步:检查Chroot目录的权限(最容易踩坑的地方!)

SFTP的Chroot目录(也就是/home/sftpuser)必须满足两个硬性要求:

  • 目录所有者必须是root用户
  • 权限不能超过755(所有者可读可写可执行,组和其他只可读可执行,不能给组/其他写权限)

执行命令检查当前权限:

ls -ld /home/sftpuser

正常输出应该是:

drwxr-xr-x 2 root root 4096 Aug 10 12:34 /home/sftpuser

如果不符合,用下面的命令修正:

# 修改所有者为root
sudo chown root:root /home/sftpuser
# 修改权限为755
sudo chmod 755 /home/sftpuser

第四步:给用户配置可读写的子目录

如果sftpuser需要上传文件,你需要在Chroot目录下创建一个属于它的子目录(因为Chroot目录本身必须是root所有,用户无法直接写入):
比如创建一个uploads目录:

sudo mkdir /home/sftpuser/uploads
# 修改目录所有者为sftpuser
sudo chown sftpuser:sftpuser /home/sftpuser/uploads
# 设置合理权限
sudo chmod 755 /home/sftpuser/uploads

第五步:查看认证日志定位具体错误

如果上面的步骤都做完还是不行,就查看系统的认证日志找线索:

sudo tail -f /var/log/auth.log

然后尝试用sftpuser连接,日志里会输出具体的失败原因(比如Chroot目录权限不符合要求),根据提示再针对性修复就好啦!


备注:内容来源于stack exchange,提问作者matrixebiz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 08:44:37