centos

centos sftp配置后无法访问怎么办

小樊
35
2025-11-07 23:41:08
栏目: 智能运维

1. 检查SSH服务状态

SFTP依赖SSH服务运行,若SSH未启动,SFTP无法连接。执行以下命令确认SSH服务状态:

sudo systemctl status sshd

若未运行,启动服务并设置开机自启:

sudo systemctl start sshd
sudo systemctl enable sshd

2. 验证SFTP配置文件(/etc/ssh/sshd_config)

SFTP配置错误是常见原因,需检查以下关键项:

修改后必须重启SSH服务使配置生效:

sudo systemctl restart sshd

3. 检查防火墙设置

CentOS默认使用firewalld,需允许SSH(默认端口22)流量:

sudo firewall-cmd --permanent --add-service=ssh  # 永久允许SSH
sudo firewall-cmd --reload                       # 重新加载防火墙规则

若使用iptables,添加以下规则:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo service iptables save

4. 排查SELinux限制

若SELinux处于Enforcing模式(默认),可能阻止SFTP访问。可通过以下命令临时设置为Permissive模式测试:

sudo setenforce 0

若问题解决,需永久调整SELinux策略

5. 确认用户及目录权限

6. 查看日志定位具体问题

日志是排查问题的关键,通过以下命令查看SSH/SFTP日志:

sudo tail -f /var/log/secure  # CentOS 7及以下
sudo tail -f /var/log/auth.log  # CentOS 8及以上

日志中会显示具体错误信息(如“Permission denied”“Connection refused”),根据提示进一步排查。

7. 测试网络连通性

8. 检查连接数限制

/etc/ssh/sshd_config中设置了MaxStartups(最大并发连接数),且达到限制,新连接会被拒绝。可通过以下命令查看并修改:

sudo cat /etc/ssh/sshd_config | grep MaxStartups

若值为10:30:100(表示前10个连接立即响应,30%的连接延迟响应,超过100的拒绝),可修改为更大值(如10000):

sudo sed -i '/#MaxStartups 10:30:100/MaxStartups 10000/g' /etc/ssh/sshd_config
sudo systemctl restart sshd

0
看了该问题的人还看了