SFTP基于SSH协议,默认已通过SSH加密传输文件,无需额外配置即可实现传输层加密。若需增强安全性,可按以下方式优化:
启用强加密算法编辑SSH配置文件(/etc/ssh/sshd_config),指定强加密算法(如AES-256-CBC、ChaCha20-Poly1305):
Ciphers aes256-ctr,aes192-ctr,aes128-ctr,[email protected] hmac-sha2-512,hmac-sha2-256KexAlgorithms [email protected]重启SSH服务生效:sudo systemctl restart ssh。
使用SSH密钥认证生成SSH密钥对(客户端:ssh-keygen -t rsa -b 4096),将公钥上传至服务器(ssh-copy-id user@host),并在服务器配置中禁用密码认证:
PasswordAuthentication noPubkeyAuthentication yes仅允许密钥认证登录,提升身份验证安全性。
可选:传输前加密文件(非必须)若需额外加密,可在传输前使用GnuPG或OpenSSL加密文件,再通过SFTP传输加密后的文件。
gpg --encrypt --recipient "收件人邮箱" file.txt,生成file.txt.gpg后传输。openssl enc -aes-256-cbc -in file.txt -out file.txt.enc,传输后用密钥解密。注意:SFTP默认的SSH加密已满足大多数安全需求,额外加密(如GPG)适用于对文件本身有更高保密要求的场景。