Linux 下 SFTP 连不上 的原因很多,下面按最常见 → 较少见的顺序帮你排查。你可以对照看看属于哪一种。
sftp -P 22 user@ip
ping ip
telnet ip 22
# 或
nc -vz ip 22
不通说明:
systemctl status sshd
如果没运行:
systemctl start sshd
systemctl enable sshd
查看:
cat /etc/ssh/sshd_config | grep sftp
应有:
Subsystem sftp /usr/lib/openssh/sftp-server
改完重启:
systemctl restart sshd
SFTP 要求:
家目录不能给组/其他写权限
错误示例:
drwxrwxrwx /home/user
修正:
chmod 755 /home/user
chown user:user /home/user
如果有:
Match User sftpuser
ChrootDirectory /data/sftp
必须满足:
/data/sftp 属主是 rootgrep user /etc/passwd
passwd -S user
grep PasswordAuthentication /etc/ssh/sshd_config
如果是 no,必须用密钥。
客户端:
chmod 600 key.pem
iptables -L -n
firewall-cmd --list-all
sftp -v user@ip
或
ssh -v user@ip
tail -f /var/log/secure
# 或
journalctl -u sshd -f
如果你愿意,可以把下面信息发我,我可以直接帮你定位:
ssh -v 的输出(关键部分)