SFTP(SSH文件传输协议)是通过SSH加密通道进行安全文件传输的协议,相比传统的FTP,它提供了更强的安全性,包括: - 加密所有传输的数据 - 使用SSH进行身份验证 - 默认使用22端口(与SSH相同)
大多数CentOS系统默认已安装OpenSSH服务器,如果没有,请执行:
sudo yum install openssh-server
sudo systemctl start sshd
sudo systemctl enable sshd
编辑SSH配置文件:
sudo vi /etc/ssh/sshd_config
确保以下配置项:
Subsystem sftp /usr/libexec/openssh/sftp-server
sudo groupadd sftpusers
sudo useradd -G sftpusers -s /sbin/nologin sftpuser1
sudo passwd sftpuser1
sudo mkdir -p /var/sftp/uploads
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
sudo chown sftpuser1:sftpusers /var/sftp/uploads
在/etc/ssh/sshd_config
末尾添加:
Match Group sftpusers
ChrootDirectory /var/sftp
ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no
sudo systemctl restart sshd
sftp sftpuser1@your_server_ip
推荐使用FileZilla、WinSCP等支持SFTP的客户端: 1. 选择SFTP协议 2. 输入服务器IP 3. 端口22(默认) 4. 输入用户名和密码
编辑/etc/ssh/sshd_config
:
PasswordAuthentication no
PubkeyAuthentication yes
然后重启SSH服务。
编辑/etc/ssh/sshd_config
:
Port 2222
更新防火墙规则:
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload
sudo yum install epel-release
sudo yum install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
sudo systemctl status sshd
sudo firewall-cmd --list-all
sudo tail -f /var/log/secure
通过以上配置,您可以在CentOS服务器上建立一个安全的SFTP环境,确保文件传输过程的安全性。