Ubuntu 上 SFTP 连不上,常见原因和排查思路如下,你可以按顺序检查:
SFTP 依赖 SSH 服务,不是单独服务。
systemctl status ssh
如果没运行:
sudo systemctl start ssh
sudo systemctl enable ssh
编辑配置:
sudo nano /etc/ssh/sshd_config
确认以下内容存在且未被注释:
Subsystem sftp /usr/lib/openssh/sftp-server
或
Subsystem sftp internal-sftp
改完重启:
sudo systemctl restart ssh
Ubuntu 默认用 ufw:
sudo ufw status
如果开启,确保 22 端口允许:
sudo ufw allow 22
云服务器还要检查 安全组 / 防火墙规则。
id 用户名
/etc/passwd 中 shell 是 /usr/sbin/nologin 或 /bin/false)如果你改过 SSH 端口:
Port 2222
连接时要指定:
sftp -P 2222 user@ip
| 报错 | 原因 |
|---|---|
| Connection refused | SSH 没开 / 端口错 |
| Connection timeout | 防火墙 / 网络 |
| Permission denied | 密码 / 权限 |
| broken pipe | chroot 配置错误 |
从本地或另一台机器:
ssh user@服务器IP
sftp user@服务器IP
如果你愿意,可以把 具体报错信息 + Ubuntu 版本 发出来,我可以直接帮你定位是哪一步的问题。