CentOS 系统中的 SFTP(Secure File Transfer Protocol)配置失败可能有多种原因。以下是一些常见的原因及其解决方法:
防火墙设置:
sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
SFTP 服务配置:
/etc/ssh/sshd_config
配置文件,确认 SFTP 子系统的设置:sudo vi /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server
sudo systemctl restart sshd
日志文件:
sudo tail -f /var/log/secure
网络连接:
ping
和 telnet
命令测试网络连通性和端口是否开放:ping [服务器 IP 地址]
telnet [服务器 IP 地址] 22
用户名和密码:
sudo chage -l [用户名]
sudo chage -M 90 [用户名]
SELinux 和 AppArmor 策略:
sudo sestatus
sudo apparmor_status
连接数限制:
sudo cat /etc/ssh/sshd_config | grep MaxStartups
sudo sed -i '/#MaxStartups 10:30:100/MaxStartups 10000/g' /etc/ssh/sshd_config
sudo systemctl restart sshd
服务器资源:
sudo top
配置文件路径:
sftp-server
的路径不正确,也会导致配置失败。可以使用 find
命令找到 sftp-server
的位置,并与配置文件中指定的位置作比较:find / -name sftp-server
使用 internal-sftp
:
internal-sftp
而不用默认的 sftp-server
,因为这是一个进程内的 SFTP 服务,当用户 chrootdirectory
的时候,将不请求任何文件,更好的性能,不用为 SFTP 再开一个进程。通过以上步骤,可以逐步排查并解决 CentOS 系统中 SFTP 服务连接失败的问题。如果问题仍然存在,建议查阅相关文档或寻求专业帮助。