Ubuntu 上 SFTP 上传失败的原因挺多的,下面按常见原因 + 排查方法给你梳理一下,你可以对照看是哪一种。
ls -ld /目标目录
如果看不到 w(写权限),就会失败。
解决:
sudo chown -R 你的用户:你的用户 /目标目录
sudo chmod 755 /目标目录
userA 登录,但目录属于 userB/root 下(普通用户不能写)df -h
如果 Use% 是 100%,上传必然失败。
解决:
查看配置:
sudo nano /etc/ssh/sshd_config
常见限制:
Match User xxx
ChrootDirectory /home/xxx
ForceCommand internal-sftp
如果 ChrootDirectory 权限不对(必须是 root 拥有,且 755),会直接断开。
修复示例:
sudo chown root:root /home/xxx
sudo chmod 755 /home/xxx
Ubuntu 默认用 AppArmor:
sudo aa-status
如果 SSH 被限制,可临时测试:
sudo systemctl restart apparmor
sftp 命令行sftp user@ip
put 本地文件 远程路径
sudo ufw status
确保 22 端口开放:
sudo ufw allow 22
服务器端:
sudo tail -f /var/log/auth.log
客户端失败时会显示类似:
Permission deniedNo such file or directorywrite failed如果你愿意,可以把具体报错信息或**用的工具(命令行 / FileZilla / 代码)**发出来,我可以直接帮你定位。