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 服務連接失敗的問題。如果問題仍然存在,建議查閱相關文檔或尋求專業幫助。