SFTP 在 Linux 上出错的原因很多,下面按常见场景 + 排查步骤 + 修复方法给你一个实用指南。你可以先看错误提示,再对照处理。
常见 SFTP 错误包括:
Connection refusedPermission deniedConnection closed by serversubsystem request failedConnected to ... 后无响应ssh user@host
subsystem request failed原因:sshd 没启用 sftp
修复: 编辑服务器:
sudo vim /etc/ssh/sshd_config
确保有:
Subsystem sftp internal-sftp
或
Subsystem sftp /usr/lib/openssh/sftp-server
重启 SSH:
sudo systemctl restart sshd
Permission denied原因:
修复:
chown user:user /home/user
chmod 700 /home/user
如启用 SELinux:
restorecon -Rv /home/user
Connection closed by server常见原因:
/sbin/nologin 但未用 internal-sftpchroot 示例(正确写法):
Match User sftpuser
ChrootDirectory /sftp
ForceCommand internal-sftp
AllowTcpForwarding no
注意:
chown root:root /sftp
chmod 755 /sftp
SFTP 用 SSH 端口(默认 22)
检查:
sudo ufw status
sudo iptables -L
如果是云服务器,确认安全组放行 22。
错误示例:
sftp ftp://host
正确:
sftp user@host
指定端口:
sftp -P 2222 user@host
sftp -v user@host
sudo tail -f /var/log/auth.log
# 或
sudo journalctl -u sshd -f
Subsystem sftp 已配置internal-sftp(推荐)如果你能贴出具体报错信息或:
我可以直接帮你给出精准修复命令。