在CentOS上配置SFTP加密,说到底,核心就是用好OpenSSH。这东西本来就是为安全通信设计的,SFTP作为它的一个子系统,天然就带加密。不过,要想把配置做到位,还是有几个关键步骤需要一步步确认。
先说前提:你得确保OpenSSH服务器已经装好并跑起来了。如果还没装,一条命令搞定:
sudo yum install openssh-server
装完之后,启动服务并设置开机自启:
sudo systemctl start sshd
sudo systemctl enable sshd
接下来,看一眼 /etc/ssh/sshd_config 配置文件。有两个身份验证选项必须打开:
PubkeyAuthentication yes
PasswordAuthentication yes
这样公钥和密码两种方式都能用,灵活性更高。当然,如果你更看重安全,可以只留公钥认证,把密码登录关掉,但那是后话了。
安全方面还有一个常见操作:禁止root直接登录。在 sshd_config 里找到这行:
PermitRootLogin no
去掉行首的#,把值改成no。这样即使有人拿到了root密码,也无法直接SSH进来,必须先用普通用户登录再切换,安全系数提升不少。
别忘了防火墙。如果CentOS上开着firewalld,得放行SSH服务:
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload
所有修改完成后,重启SSH服务让设置生效:
sudo systemctl restart sshd
到这里,SFTP加密的基础配置已经完成。因为SSH协议本身就已经对传输内容做了端到端的加密,所以日常使用完全够了。不过,有些场景下可能会想要叠加一层SSL/TLS——比如为了和某些客户端兼容,或者满足更严格的合规要求。但那是另一个话题了,需要额外申请证书、配置Nginx或Stunnel之类的袋里,操作量会大很多。
最后提醒一点:客户端连接时一定要选择SFTP协议,不要选成FTPS或普通FTP。现在主流的SFTP客户端(比如FileZilla、WinSCP)默认都会走加密连接,基本不用操心。
上述步骤适用于CentOS 7以及更高版本。如果你用的是CentOS 8或者Stream,个别命令可能有差异(比如网络配置改用了nftables),但整体思路一致。另外,务必保持系统及软件包处于最新状态——安全攻防本来就是一场持久战,定期打补丁是最基本的自我保护手段。
