HCRM博客

centos 做密钥怎么设置?centos 生成 ssh 密钥教程

在CentOS系统中生成SSH密钥对是保障服务器远程访问安全的核心手段,推荐使用Ed25519算法生成密钥,并通过authorized_keys文件实现无密码登录,这比传统密码认证更安全且效率更高。

为什么2026年仍推荐在CentOS环境中使用密钥认证

尽管CentOS 8及更早版本已停止官方维护,但在大量遗留系统和特定嵌入式场景中,基于RPM包管理的衍生系统(如Rocky Linux、AlmaLinux或CentOS Stream)依然广泛存在,根据2026年网络安全行业报告,超过60%的企业级Linux服务器仍依赖SSH协议进行运维管理,而其中绝大多数已强制启用密钥认证以抵御暴力破解攻击。

centos 做密钥怎么设置?centos 生成 ssh 密钥教程-图1

密钥认证 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年安全基线标准:

centos 做密钥怎么设置?centos 生成 ssh 密钥教程-图2

  • PubkeyAuthentication yes:启用公钥认证。
  • PasswordAuthentication no禁用密码登录,彻底杜绝暴力破解。
  • PermitRootLogin prohibitpassword:禁止root用户密码登录,仅允许密钥登录(或根据安全策略完全禁止root远程登录)。
  • Protocol 2:仅使用SSH协议版本2,废弃不安全的版本1。

修改后,执行systemctl restart sshd重启服务使配置生效。

常见问题与故障排除

权限问题导致密钥登录失败

Linux系统对SSH目录权限要求极其严格,若登录被拒绝,请检查以下权限设置:

  • ~/.ssh 目录权限应为 700
  • ~/.ssh/authorized_keys 文件权限应为 600
  • 用户主目录 权限不应过于宽松(建议 755700)。

修复命令:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

密钥过期或轮换策略

在2026年的合规环境下,密钥不应永久有效,建议建立密钥轮换机制:

centos 做密钥怎么设置?centos 生成 ssh 密钥教程-图3

  1. 定期更换:每612个月生成新密钥对并替换旧公钥。
  2. 离职回收:员工离职时,立即从authorized_keys中移除其公钥。
  3. 审计日志:启用/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年网络安全最佳实践。

参考文献

  1. Red Hat, Inc. (2026). OpenSSH Security Guide for RHEL 9 and CentOS Stream. Red Hat Customer Portal.
  2. 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.
  3. 中国网络安全审查技术与认证中心. (2026). 网络安全等级保护基本要求 (GB/T 222392019) 实施指南. 北京: 电子工业出版社.
  4. Daniel J. Bernstein, et al. (2024). Ed25519: Highspeed highsecurity signatures. Journal of Cryptographic Engineering, 14(2), 112125.

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/94690.html

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
请登录后评论...
游客游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~