在SFTP配置中启用加密,核心目标是确保数据传输过程中的机密性与完整性,有效防止信息被窃听或篡改。很多用户习惯一上来就调整大量参数,其实关键步骤只有几步:找到正确的配置文件,确认SFTP子系统未被注释,然后指定所需的加密算法。下面按照不同操作系统进行分步说明。

在Linux系统上
编辑SSH配置文件 打开
/etc/ssh/sshd_config,这是SSH服务器的主配置文件。sudo nano /etc/ssh/sshd_config启用SFTP子系统 找到下面这行,确保前面没有
#注释符号:Subsystem sftp /usr/lib/openssh/sftp-server配置加密算法 你可以限制服务器只接受强度较高的算法。例如使用AES-256-CTR等:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr如果需要更高级别的保护,也可以采用ChaCha20-Poly1305或AES-GCM:
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com重启SSH服务 保存配置并退出后,执行以下命令使设置生效:
sudo systemctl restart sshd
在Windows系统上(使用OpenSSH)
编辑SSH配置文件 Windows下OpenSSH的配置文件路径为
C:\ProgramData\ssh\sshd_config。启用SFTP子系统 同样检查并确保下面这行未被注释:
Subsystem sftp internal-sftp配置加密算法 与Linux类似,指定允许的算法列表。例如:
Ciphers aes256-ctr,aes192-ctr,aes128-ctr或者采用更新式的组合:
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com重启SSH服务 以管理员权限运行以下命令:
net stop sshd net start sshd
验证加密
配置是否生效?可以使用sftp -v user@hostname进行连接,并开启调试模式。如果输出中包含类似下面这样的行,说明加密已经正常运作:
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending subsystem: sftp
debug1: client_input_global_request: rcmd host localhost 22
debug1: channel 0: request rcmd confirm 1
debug1: channel 0: rcvd confirm 1
debug1: channel 0: open confirmed
debug1: channel 0: new [server-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending subsystem: sftp
debug1: channel 0: request sftp confirm 1
debug1: channel 0: rcvd confirm 1
debug1: channel 0: open confirmed
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending subsystem: sftp
debug1: channel 0: request sftp confirm 1
debug1: channel 0: rcvd confirm 1
debug1: channel 0: open confirmed
完成以上步骤后,SFTP加密即配置完毕。若后续遇到连接失败的问题,请优先检查配置文件的语法错误以及子系统路径是否正确——这些常见细节虽然简单,却容易被忽略。
