在 Debian 系统上搭建 SFTP 并实现数据加密,其实并不复杂,按照以下步骤操作即可顺利完成。整个过程的核心在于利用 OpenSSH 自带的 SFTP 子系统,并配合强加密算法,确保文件传输过程的安全性与可靠性。
1. 安装 OpenSSH 服务器
首先确认系统是否已安装 OpenSSH 服务。如果尚未安装,只需执行以下两条命令:
sudo apt update
sudo apt install openssh-server
2. 配置 SSH 服务器
接下来需要修改配置文件 /etc/ssh/sshd_config。打开该文件,确保以下关键参数设置正确:
# 启用 SFTP 子系统
Subsystem sftp /usr/lib/openssh/sftp-server
# 禁止 root 登录(强烈建议开启,防止暴力破解攻击)
PermitRootLogin no
# 强制使用公钥认证(如果担心密码泄露,可启用此选项)
PubkeyAuthentication yes
# 如需保留密码登录,请保留此项
PasswordAuthentication yes
# 限制登录失败次数,防止暴力破解
MaxAuthTries 3
# 设置最大并发会话数,根据实际需求调整
MaxSessions 10
3. 配置 SFTP 用户权限
SFTP 用户的家目录权限需要严格收紧,防止用户越权访问系统文件。以 sftpuser 为例,执行以下命令:
sudo chown root:root /home/sftpuser
sudo chmod 755 /home/sftpuser
这样用户就可以正常读写自己的目录,但无法操作系统级别的文件。
4. 创建 SFTP 用户
新建一个专用用户,并将其 shell 设置为 /sbin/nologin,这样该账号只能通过 SFTP 连接,无法登录系统 Shell:
sudo adduser sftpuser
sudo usermod -d /home/sftpuser -s /sbin/nologin sftpuser
5. 配置防火墙
如果系统启用了防火墙(例如 ufw),需要放行 SSH 端口:
sudo ufw allow ssh
sudo ufw enable
6. 重启 SSH 服务
所有配置修改完成后,重新加载 SSH 服务使配置生效:
sudo systemctl restart sshd
7. 测试 SFTP 连接
使用刚刚创建的用户测试连接,验证配置是否正常:
sftp sftpuser@your_server_ip
如果能够成功登录,说明配置无误。
8. 数据加密
默认情况下,SSH 协议已经采用了 AES-256 等强加密算法,一般无需额外配置。但如果希望进一步提升安全性,可以手动指定加密算法和 MAC 算法。在 /etc/ssh/sshd_config 文件中追加以下两行:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
MACs hmac-sha2-512,hmac-sha2-256
修改完成后,不要忘记再次重启 SSH 服务:
sudo systemctl restart sshd
这样,SFTP 传输的数据将受到高强度加密保护,即使中间有人抓包,看到的也只是一串加密流量。
