温馨提示×

为什么debian sftp连不上

小樊
52
2026-10-12 10:28:27
栏目: 智能运维

Debian 上 SFTP 连不上 的原因很多,下面按最常见 → 较少见的顺序帮你排查。你可以逐条对照。


一、最常见原因

1. SSH/SFTP 服务没开

SFTP 依赖 SSH,先确认:

systemctl status ssh

如果没运行:

systemctl start ssh
systemctl enable ssh

⚠️ Debian 默认服务名是 ssh,不是 sshd


2. 防火墙挡住了 22 端口

检查端口是否通:

ss -tlnp | grep :22

或本机测试:

ssh localhost

如果远程连不上:

ufw status

允许 SSH:

ufw allow 22

云服务器还需检查 安全组 / 防火墙规则


3. 用户被禁止登录

很多 Debian 用户默认 不能 SSH 登录:

getent passwd 用户名

如果 shell 是:

/bin/false
/usr/sbin/nologin

SFTP 会失败。

修改:

chsh -s /bin/bash 用户名

4. SFTP 子系统被禁用

编辑:

/etc/ssh/sshd_config

确认有:

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

修改后重启:

systemctl restart ssh

二、权限问题(非常常见)

5. 家目录权限不对

SFTP 用户家目录不能太“开放”:

chmod 755 /home/用户名
chown 用户名:用户名 /home/用户名

错误示例(会导致失败):

777

6. Chroot 配置错误(限制目录时)

如果你用了:

ChrootDirectory /sftp

必须满足:

  • 目录属主是 root
  • 权限 ≤ 755
  • 用户实际可写目录在子目录里

三、认证问题

7. 密码错误 / 被禁用

检查:

PasswordAuthentication yes

改完重启 SSH。


8. 密钥问题

如果你用密钥:

  • 权限:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
  • 属主必须是用户本身

四、日志是最快定位方式

服务端看日志

journalctl -u ssh

或

tail -f /var/log/auth.log

客户端加调试

sftp -v user@host

五、快速自检清单 ✅

  • [ ] ssh 服务在运行
  • [ ] 22 端口通
  • [ ] 用户 shell 正常
  • [ ] sftp 子系统启用
  • [ ] 家目录权限正确
  • [ ] 防火墙 / 安全组允许

如果你愿意,可以告诉我:

  • Debian 版本
  • 报错信息(客户端 + /var/log/auth.log)
  • 是否是 Chroot / 仅 SFTP 用户

我可以直接帮你定位到具体原因。

0 踩