温馨提示×

为什么centos sftp登录失败

小樊
35
2026-09-06 03:05:31
栏目: 智能运维

CentOS 上 SFTP 登录失败 的原因很多,常见原因可以按下面几类排查。你可以对照看是哪一类:


一、SSH / SFTP 服务本身问题

1. SSH 服务未启动

systemctl status sshd

如果没运行:

systemctl start sshd
systemctl enable sshd

2. 防火墙或 SELinux 拦截

  • 防火墙:
firewall-cmd --list-all

确保 22 端口开放:

firewall-cmd --add-service=ssh --permanent
firewall-cmd --reload
  • SELinux(常见坑):
getenforce

如果是 Enforcing,可临时测试:

setenforce 0

若登录成功,说明是 SELinux 策略问题。


二、用户或权限问题(最常见)

3. 用户被禁止登录

检查:

grep 用户名 /etc/passwd

shell 应为:

/bin/bash

如果是 /sbin/nologin/bin/false,SFTP 可能失败(除非使用 internal-sftp + chroot)。

4. 密码错误 / 账户锁定

passwd -S 用户名

锁定状态会显示 L

解锁:

passwd -u 用户名

5. 家目录权限不正确(chroot 场景)

如果你配置了:

ChrootDirectory /home/xxx

那么:

  • /home/xxx 必须 属主为 root
  • 权限不能大于 755

错误示例:

chown root:root /home/xxx
chmod 755 /home/xxx

三、SSH 配置问题

6. /etc/ssh/sshd_config 配置错误

常见问题:

  • 只允许特定用户:
AllowUsers user1 user2
  • SFTP 子系统配置错误:
Subsystem sftp internal-sftp

修改后必须重启:

systemctl restart sshd

四、日志是最关键的排查手段

7. 查看登录失败原因(非常重要)

服务端:

journalctl -u sshd -f

或:

tail -f /var/log/secure

客户端加 verbose:

sftp -v user@ip

五、常见典型错误对照

现象 可能原因
connection refused sshd 未启动 / 防火墙
permission denied 密码错 / 用户被禁
broken pipe chroot 权限错
accepted password 但立刻断开 shell 或 sftp 子系统问题

如果你愿意,可以把 具体报错信息/var/log/secure 的相关内容贴出来,我可以直接帮你定位是哪一条。

0