要解決CentOS上的SFTP連接問題,可以按照以下步驟進行排查和解決:
首先,確認SSH服務是否正在運行??梢允褂靡韵旅顧z查SSH服務的狀態:
sudo systemctl status sshd
如果SSH服務未運行,請使用以下命令啟動它:
sudo systemctl start sshd
并確保SSH服務在系統啟動時自動運行:
sudo systemctl enable sshd
確保在SSH配置文件 /etc/ssh/sshd_config
中正確配置了SFTP子系統。找到以下行并取消注釋(如果存在 #
符號),或者如果不存在則添加它們:
Subsystem sftp /usr/libexec/openssh/sftp-server
或者使用內部SFTP:
Subsystem sftp internal-sftp
保存并關閉文件,然后重新啟動SSH服務以使更改生效:
sudo systemctl restart sshd
為了安全起見,建議為SFTP服務創建專門的用戶。使用以下命令創建用戶:
sudo useradd -m -s /sbin/nologin sftpuser
然后為用戶設置密碼:
sudo passwd sftpuser
sudo mkdir /sftp/sftpuser
sudo chown sftpuser:sftpuser /sftp/sftpuser
sudo chmod 755 /sftp/sftpuser
.ssh
目錄和 authorized_keys
文件:sudo mkdir /home/sftpuser/.ssh
sudo cp /etc/ssh/ssh_host_rsa_key /home/sftpuser/.ssh/authorized_keys
sudo chmod 700 /home/sftpuser/.ssh
sudo chmod 600 /home/sftpuser/.ssh/authorized_keys
sudo chown sftpuser:sftpuser /home/sftpuser/.ssh
確保防火墻允許SSH和SFTP連接。使用以下命令打開SSH端口(默認22):
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
使用SFTP客戶端連接到服務器。在命令行中輸入以下命令,將 your_username
、your_password
和 your_server_ip
替換為實際的用戶名、密碼和服務器IP地址:
sftp your_username@your_server_ip
輸入密碼后,如果連接成功,則表示SFTP配置正確。