Linux 下 SFTP 连接失败 的原因很多,下面按常见程度和排查思路给你一个系统总结。
ping 服务器IP
telnet 服务器IP 22
# 或
nc -vz 服务器IP 22
sftp -P 2222 user@host
systemctl status sshd
systemctl start sshd检查 /etc/ssh/sshd_config:
Subsystem sftp internal-sftp
缺失会导致:
Connection closed / broken pipe
如:
ForceCommand internal-sftp
但 shell 或目录权限不对,也会失败
错误示例:
Permission denied (publickey,password)
PasswordAuthentication no
需用密钥登录
chmod 600 ~/.ssh/id_rsa
chmod 700 ~/.ssh
authorized_keyssftp -i key.pem user@host
SFTP 用户目录不能过于开放:
chown user:user /home/user
chmod 755 /home/user
错误示例:
bad ownership or modes for chroot directory
ChrootDirectory /data/sftp
要求:
正确:
sftp user@host
sftp -P 22 user@host
错误:
sftp host user # 错
sftp -v user@host
或
ssh -v user@host
tail -f /var/log/secure
# 或
journalctl -u sshd -f
SFTP 失败 90% 原因集中在:
网络不通、SSH 服务问题、认证失败、权限错误
如果你愿意,可以把 具体报错信息 或 服务端配置 发出来,我可以直接帮你定位是哪一条。