在 Ubuntu 上 SFTP 能连上但无法上传文件,通常是权限、配置或磁盘相关问题。你可以按下面顺序排查和修复。
sftp user@服务器IP
Permission denied → 权限问题No such file or directory → 路径问题write failed → 磁盘或配额问题ls -ld /目标目录
ls -l /目标目录
chown user:user /目标目录
chmod 755 /目标目录
如果是用户 home 目录:
chown user:user /home/user
chmod 700 /home/user
⚠️ 注意:
root 所属的目录sudo nano /etc/ssh/sshd_config
Subsystem sftp internal-sftp
如果看到:
Subsystem sftp /usr/lib/openssh/sftp-server
一般也没问题。
如果你配置了:
Match User xxx
ForceCommand internal-sftp
ChrootDirectory /home/xxx
那么:
ChrootDirectory 必须属 root✅ 正确结构:
/home/xxx root:root 755
/home/xxx/upload user:user 755
df -h
df -i
quota -u 用户名
Ubuntu 默认用 AppArmor,一般不影响 SFTP
除非你改过策略。
可临时测试:
sudo aa-complain /usr/sbin/sshd
SFTP 走 22 端口,只要能登录就说明不是端口问题。
put test.txt
Permission denied
chown 用户名:用户名 目录
chmod 755 目录
你可以贴出:
/etc/ssh/sshd_config 相关配置我可以直接告诉你改哪一行 ✅