温馨提示×

linux sftp连接失败原因

小樊
37
2026-09-10 22:51:34
栏目: 智能运维

Linux 下 SFTP 连接失败 的原因很多,下面按常见程度排查思路给你一个系统总结。


一、网络与连通性问题(最常见)

1. 网络不通

ping 服务器IP
telnet 服务器IP 22
# 或
nc -vz 服务器IP 22
  • 不通:防火墙、网络隔离、IP 错误
  • 通但仍失败:继续往下看

2. 端口不是 22

sftp -P 2222 user@host
  • 服务端可能监听非默认端口

二、SSH / SFTP 服务问题

3. SSH 服务未启动

systemctl status sshd
  • 未运行:systemctl start sshd

4. SFTP 子系统未启用

检查 /etc/ssh/sshd_config

Subsystem sftp internal-sftp

缺失会导致:

Connection closed / broken pipe

5. 只允许 SFTP 用户被错误限制

如:

ForceCommand internal-sftp

但 shell 或目录权限不对,也会失败


三、认证失败

6. 用户名 / 密码错误

错误示例:

Permission denied (publickey,password)

7. 禁用了密码登录

PasswordAuthentication no

需用密钥登录

8. 密钥问题

  • 权限错误(非常常见)
chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh
  • 公钥未加入 authorized_keys
  • 指定密钥:
sftp -i key.pem user@host

四、权限与目录问题

9. 用户家目录权限错误

SFTP 用户目录不能过于开放:

chown user:user /home/user
chmod 755 /home/user

错误示例:

bad ownership or modes for chroot directory

10. Chroot 配置错误

ChrootDirectory /data/sftp

要求:

  • 属主为 root
  • 权限 ≤ 755

五、客户端问题

11. 客户端命令错误

正确:

sftp user@host
sftp -P 22 user@host

错误:

sftp host user   # 错

12. 本地防火墙 / 代理

  • 公司网络限制 22 端口
  • 使用了错误的 ProxyCommand

六、查看详细错误信息(关键)

Linux 客户端调试

sftp -v user@host

ssh -v user@host

服务端日志

tail -f /var/log/secure
# 或
journalctl -u sshd -f

七、一句话总结

SFTP 失败 90% 原因集中在:
网络不通、SSH 服务问题、认证失败、权限错误

如果你愿意,可以把 具体报错信息服务端配置 发出来,我可以直接帮你定位是哪一条。

0