Debian 上 SFTP 连不上 的原因很多,下面按最常见 → 较少见的顺序帮你排查。你可以逐条对照。
SFTP 依赖 SSH,先确认:
systemctl status ssh
如果没运行:
systemctl start ssh
systemctl enable ssh
⚠️ Debian 默认服务名是 ssh,不是 sshd
检查端口是否通:
ss -tlnp | grep :22
或本机测试:
ssh localhost
如果远程连不上:
ufw status
允许 SSH:
ufw allow 22
云服务器还需检查 安全组 / 防火墙规则
很多 Debian 用户默认 不能 SSH 登录:
getent passwd 用户名
如果 shell 是:
/bin/false
/usr/sbin/nologin
SFTP 会失败。
修改:
chsh -s /bin/bash 用户名
编辑:
/etc/ssh/sshd_config
确认有:
Subsystem sftp /usr/lib/openssh/sftp-server
修改后重启:
systemctl restart ssh
SFTP 用户家目录不能太“开放”:
chmod 755 /home/用户名
chown 用户名:用户名 /home/用户名
错误示例(会导致失败):
777
如果你用了:
ChrootDirectory /sftp
必须满足:
root检查:
PasswordAuthentication yes
改完重启 SSH。
如果你用密钥:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
journalctl -u ssh
或
tail -f /var/log/auth.log
sftp -v user@host
如果你愿意,可以告诉我:
/var/log/auth.log)我可以直接帮你定位到具体原因。