插件窝 干货文章 如何使用安全的文件传输协议(SFTP)保护CentOS服务器上的文件传输

如何使用安全的文件传输协议(SFTP)保护CentOS服务器上的文件传输

sudo SFTP SSH bash 645    来源:    2025-04-15

在CentOS服务器上配置和使用SFTP进行安全文件传输

什么是SFTP

SFTP(SSH文件传输协议)是通过SSH加密通道进行安全文件传输的协议,相比传统的FTP,它提供了更强的安全性,包括: - 加密所有传输的数据 - 使用SSH进行身份验证 - 默认使用22端口(与SSH相同)

在CentOS上配置SFTP

1. 安装OpenSSH服务器

大多数CentOS系统默认已安装OpenSSH服务器,如果没有,请执行:

sudo yum install openssh-server

2. 启动并启用SSH服务

sudo systemctl start sshd
sudo systemctl enable sshd

3. 配置SSH/SFTP

编辑SSH配置文件:

sudo vi /etc/ssh/sshd_config

确保以下配置项:

Subsystem sftp /usr/libexec/openssh/sftp-server

4. 创建SFTP专用用户组和用户

sudo groupadd sftpusers
sudo useradd -G sftpusers -s /sbin/nologin sftpuser1
sudo passwd sftpuser1

5. 设置SFTP专用目录

sudo mkdir -p /var/sftp/uploads
sudo chown root:root /var/sftp
sudo chmod 755 /var/sftp
sudo chown sftpuser1:sftpusers /var/sftp/uploads

6. 限制SFTP用户只能访问指定目录

/etc/ssh/sshd_config末尾添加:

Match Group sftpusers
    ChrootDirectory /var/sftp
    ForceCommand internal-sftp
    X11Forwarding no
    AllowTcpForwarding no

7. 重启SSH服务

sudo systemctl restart sshd

使用SFTP客户端连接

命令行客户端

sftp sftpuser1@your_server_ip

图形化客户端

推荐使用FileZilla、WinSCP等支持SFTP的客户端: 1. 选择SFTP协议 2. 输入服务器IP 3. 端口22(默认) 4. 输入用户名和密码

高级安全配置

1. 禁用SSH密码认证,使用密钥认证

编辑/etc/ssh/sshd_config

PasswordAuthentication no
PubkeyAuthentication yes

然后重启SSH服务。

2. 更改默认SSH端口

编辑/etc/ssh/sshd_config

Port 2222

更新防火墙规则:

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

3. 使用Fail2Ban防止暴力破解

sudo yum install epel-release
sudo yum install fail2ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

常见问题解决

连接被拒绝

  • 检查SSH服务是否运行:sudo systemctl status sshd
  • 检查防火墙设置:sudo firewall-cmd --list-all

权限问题

  • 确保chroot目录归root所有
  • 确保用户对上传目录有写权限

日志查看

sudo tail -f /var/log/secure

通过以上配置,您可以在CentOS服务器上建立一个安全的SFTP环境,确保文件传输过程的安全性。