SFTP基于SSH协议,默认已通过SSH加密传输文件,无需额外配置即可实现传输层加密。若需增强安全性,可按以下方式优化:
启用强加密算法
编辑SSH配置文件(/etc/ssh/sshd_config
),指定强加密算法(如AES-256-CBC、ChaCha20-Poly1305):
Ciphers aes256-ctr,aes192-ctr,aes128-ctr,chacha20-poly1305@openssh.com
MACs hmac-sha2-512,hmac-sha2-256
KexAlgorithms curve25519-sha256@libssh.org
重启SSH服务生效:sudo systemctl restart ssh
。
使用SSH密钥认证
生成SSH密钥对(客户端:ssh-keygen -t rsa -b 4096
),将公钥上传至服务器(ssh-copy-id user@host
),并在服务器配置中禁用密码认证:
PasswordAuthentication no
PubkeyAuthentication 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)适用于对文件本身有更高保密要求的场景。