温馨提示×

ubuntu sftp无法上传咋办

小樊
68
2026-09-05 09:33:03
栏目: 智能运维

在 Ubuntu 上 SFTP 能连上但无法上传文件,通常是权限、配置或磁盘相关问题。你可以按下面顺序排查和修复。


一、先确认基本信息

  1. 能否正常登录
sftp user@服务器IP
  1. 上传时报什么错?
  • Permission denied → 权限问题
  • No such file or directory → 路径问题
  • write failed → 磁盘或配额问题

二、最常见原因:目录权限不对(90% 情况)

1. 查看目标目录权限

ls -ld /目标目录
ls -l /目标目录

2. 正确权限示例(以用户上传为例)

chown user:user /目标目录
chmod 755 /目标目录

如果是用户 home 目录:

chown user:user /home/user
chmod 700 /home/user

⚠️ 注意:

  • 父目录必须有写权限
  • SFTP 用户不能写到 root 所属的目录

三、检查 SSH / SFTP 配置

1. 编辑配置文件

sudo nano /etc/ssh/sshd_config

2. 确认有以下内容(不要误禁)

Subsystem sftp internal-sftp

如果看到:

Subsystem sftp /usr/lib/openssh/sftp-server

一般也没问题。

3. 检查是否限制了用户

如果你配置了:

Match User xxx
    ForceCommand internal-sftp
    ChrootDirectory /home/xxx

那么:

  • ChrootDirectory 必须属 root
  • 用户不能在 Chroot 根目录直接写

✅ 正确结构:

/home/xxx        root:root   755
/home/xxx/upload user:user   755

四、磁盘或配额问题

1. 查看磁盘

df -h

2. 查看 inode

df -i

3. 查看配额(如有)

quota -u 用户名

五、SELinux / AppArmor(较少见)

Ubuntu 默认用 AppArmor,一般不影响 SFTP
除非你改过策略。

可临时测试:

sudo aa-complain /usr/sbin/sshd

六、防火墙 / 安全组(不影响上传但确认)

SFTP 走 22 端口,只要能登录就说明不是端口问题。


七、常见错误示例 & 解决

❌ 错误

put test.txt
Permission denied

✅ 解决

chown 用户名:用户名 目录
chmod 755 目录

八、如果你愿意,我可以直接帮你定位

你可以贴出:

  1. SFTP 登录用户名
  2. 上传目录路径
  3. 报错完整信息
  4. /etc/ssh/sshd_config 相关配置

我可以直接告诉你改哪一行 ✅

0 踩