Debian SFTP配置如何加密传输
小樊
32
2026-01-02 14:40:35
Debian SFTP加密传输配置指南
核心要点
- SFTP 默认通过 SSH 使用加密通道,无需额外“开启 SSL”。只要启用并正确配置 OpenSSH 的 SFTP 子系统,客户端到服务器的文件传输即被加密。若你之前使用的是明文 FTP,应改用 SFTP 或 FTPS 来获得加密传输。
快速启用步骤
- 安装 OpenSSH 服务器(如未安装):sudo apt update && sudo apt install openssh-server。
- 确保 SSH 配置启用 SFTP 子系统:在 /etc/ssh/sshd_config 中确认存在或添加:Subsystem sftp /usr/lib/openssh/sftp-server(Debian 常见路径;某些系统可用 internal-sftp)。保存后重启服务:sudo systemctl restart sshd。
- 防火墙放行 SSH 端口 22/TCP(UFW 示例:sudo ufw allow 22/tcp)。完成后即可使用 sftp 命令或图形客户端安全传输。
强化安全与算法配置
- 在 /etc/ssh/sshd_config 中设置仅使用安全协议与强算法(示例):
- Protocol 2
- Ciphers aes128-ctr,aes192-ctr,aes256-ctr
- MACs hmac-sha2-256,hmac-sha2-512
- KexAlgorithms diffie-hellman-group-exchange-sha256
- 建议启用公钥认证并禁用密码登录(在用户段或全局段按需设置):
- PubkeyAuthentication yes
- PasswordAuthentication no(或仅对特定用户/组禁用)
- 修改后执行:sudo systemctl reload sshd 使配置生效。
常见场景配置示例
- 仅允许 SFTP 且限制用户目录(chroot)
- 在 /etc/ssh/sshd_config 末尾添加:
- Match Group sftp
- ChrootDirectory %h
- ForceCommand internal-sftp
- AllowTcpForwarding no
- X11Forwarding no
- 如需对单个用户生效,可将 Match Group 改为 Match User username。保存后 reload sshd。
- 证书与主机密钥说明
- SFTP 的加密与身份认证依赖 SSH 主机密钥(如 /etc/ssh/ssh_host_rsa_key 等),无需为 SFTP 单独配置“SSL 证书”。若希望客户端验证服务器身份,请部署由受信任 CA 签发的证书,或正确部署自签名证书并将公钥分发至客户端信任库。
验证与排错
- 连接测试:sftp -o Port=22 username@your_server_ip;登录后应显示加密会话信息,文件传输过程全程加密。
- 服务状态与日志:sudo systemctl status sshd;查看 /var/log/auth.log 中的 SSH/SFTP 登录与拒绝记录,用于定位认证或权限问题。
- 防火墙与网络:确认云安全组/本机防火墙已放行 22/TCP;如使用非默认端口,请同步调整客户端与防火墙策略。