在 Ubuntu 上 SFTP 无法上传文件 通常和 权限、配置、磁盘或 SELinux/AppArmor 有关。下面按最常见原因 → 排查方法 → 解决办法来帮你定位。
lsput 失败,提示:
permission deniedCouldn't write fileSFTP 上传目录 对登录用户没有写权限
ls -ld /目标目录
ls -l /目标目录
drwxrwxr-x user user /home/user/upload
chown -R user:user /目录
chmod 755 /目录
⚠️ 注意:
/ 和父目录也不能是 777如果你在 /etc/ssh/sshd_config 里用了:
Match User sftpuser
ChrootDirectory /sftp
ForceCommand internal-sftp
chown root:root /sftp
chmod 755 /sftp
mkdir /sftp/upload
chown sftpuser:sftpuser /sftp/upload
df -h
清理空间或换目录
grep sftp /etc/ssh/sshd_config
应有:
Subsystem sftp internal-sftp
改完重启:
systemctl restart ssh
可临时测试:
sudo aa-complain /usr/sbin/sshd
sftp user@ip
put test.txt
whoami
pwd
ls -ld .
df -h .
请把以下信息发我:
/etc/ssh/sshd_config 相关配置我可以一步到位告诉你改哪里。