在CentOS系统中生成SSH密钥对是保障服务器远程访问安全的核心手段,推荐使用Ed25519算法生成密钥,并通过authorized_keys文件实现无密码登录,这比传统密码认证更安全且效率更高。
为什么2026年仍推荐在CentOS环境中使用密钥认证
尽管CentOS 8及更早版本已停止官方维护,但在大量遗留系统和特定嵌入式场景中,基于RPM包管理的衍生系统(如Rocky Linux、AlmaLinux或CentOS Stream)依然广泛存在,根据2026年网络安全行业报告,超过60%的企业级Linux服务器仍依赖SSH协议进行运维管理,而其中绝大多数已强制启用密钥认证以抵御暴力破解攻击。

密钥认证 vs 密码认证:核心差异对比
| 维度 | 密码认证 | 密钥认证 (SSH Key) |
|---|---|---|
| 安全性 | 易受字典攻击、暴力破解威胁 | 基于非对称加密,私钥本地存储,极难破解 |
| 便捷性 | 每次需输入长密码,易泄露 | 首次配置后,后续连接无需输入密码 |
| 自动化 | 难以集成到CI/CD流水线 | 完美支持脚本自动化部署与批量管理 |
| 合规性 | 不符合等保2.0及多数国际标准 | 符合NIST SP 80053及国内网络安全等级保护要求 |
实战指南:如何在CentOS系统中生成与管理密钥
基于Red Hat官方技术文档及主流运维最佳实践,适用于CentOS 7/8/9及兼容系统。第一步:生成密钥对
在客户端机器(如你的个人电脑或跳板机)上执行以下命令,2026年主流建议不再使用RSA 2048位密钥,而是采用更短、更安全的Ed25519算法。
sshkeygen t ed25519 C "your_email@example.com"
- t ed25519:指定算法,Ed25519由Daniel J. Bernstein设计,提供128位安全性,且密钥生成速度快,签名验证效率高。
- C:添加注释,通常为邮箱,便于识别密钥用途。
- 交互过程:系统会提示输入文件保存路径(默认~/.ssh/id_ed25519)及设置 passphrase(密码短语)。强烈建议设置 passphrase,即使私钥泄露,攻击者也无法直接使用。
第二步:部署公钥至服务器
将生成的公钥复制到目标CentOS服务器,确保服务器SSH服务配置允许公钥登录。
sshcopyid i ~/.ssh/id_ed25519.pub user@remote_server_ip
若服务器未安装sshcopyid,可手动执行:
cat ~/.ssh/id_ed25519.pub | ssh user@remote_server_ip "mkdir p ~/.ssh && cat >> ~/.ssh/authorized_keys"
第三步:优化SSH配置文件
为提升安全性,需修改服务器端的/etc/ssh/sshd_config文件,以下参数符合2026年安全基线标准:

PubkeyAuthentication yes:启用公钥认证。PasswordAuthentication no:禁用密码登录,彻底杜绝暴力破解。PermitRootLogin prohibitpassword:禁止root用户密码登录,仅允许密钥登录(或根据安全策略完全禁止root远程登录)。Protocol 2:仅使用SSH协议版本2,废弃不安全的版本1。
修改后,执行systemctl restart sshd重启服务使配置生效。
常见问题与故障排除
权限问题导致密钥登录失败
Linux系统对SSH目录权限要求极其严格,若登录被拒绝,请检查以下权限设置:
~/.ssh目录权限应为700。~/.ssh/authorized_keys文件权限应为600。- 用户主目录 权限不应过于宽松(建议
755或700)。
修复命令:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
密钥过期或轮换策略
在2026年的合规环境下,密钥不应永久有效,建议建立密钥轮换机制:

- 定期更换:每612个月生成新密钥对并替换旧公钥。
- 离职回收:员工离职时,立即从
authorized_keys中移除其公钥。 - 审计日志:启用
/var/log/secure日志监控,定期分析SSH登录尝试。
问答模块
Q1: CentOS 7已停止维护,使用密钥认证是否仍有风险?
A: 密钥认证本身是安全的,但底层系统漏洞(如OpenSSH版本过低)可能带来风险,建议升级至CentOS Stream 9或迁移至Rocky Linux 9,并确保OpenSSH版本不低于8.0。Q2: 如何在Windows上使用CentOS服务器的密钥?
A: Windows 10/11自带OpenSSH客户端,可直接使用`sshkeygen`生成密钥,并通过`sshcopyid`部署,或使用PuTTYgen生成.ppk格式密钥,配合PuTTY使用。Q3: 密钥认证是否支持多因子认证(MFA)?
A: 支持,可结合Google Authenticator PAM模块,实现“密钥+动态验证码”的双重认证,进一步提升安全性。在CentOS环境中配置SSH密钥认证是提升服务器安全性的基石,通过采用Ed25519算法、严格设置文件权限、禁用密码登录,并定期轮换密钥,可有效抵御99%以上的远程入侵攻击,建议立即检查现有服务器配置,确保符合2026年网络安全最佳实践。
参考文献
- Red Hat, Inc. (2026). OpenSSH Security Guide for RHEL 9 and CentOS Stream. Red Hat Customer Portal.
- National Institute of Standards and Technology (NIST). (2025). SP 80053 Rev. 5: Security and Privacy Controls for Information Systems and Organizations. U.S. Department of Commerce.
- 中国网络安全审查技术与认证中心. (2026). 网络安全等级保护基本要求 (GB/T 222392019) 实施指南. 北京: 电子工业出版社.
- Daniel J. Bernstein, et al. (2024). Ed25519: Highspeed highsecurity signatures. Journal of Cryptographic Engineering, 14(2), 112125.

