在服务器管理中,通过密钥对实现安全登录是保护系统的重要方式,CentOS作为企业级Linux发行版,其稳定性和安全性备受信赖,以下将详细介绍在centos系统中生成并配置SSH密钥对的完整流程,并提供关键安全建议。
为什么选择密钥登录?

与传统密码登录相比,SSH密钥认证采用非对称加密技术,破解难度呈指数级提升,公钥存储在服务器,私钥由用户保管,即使服务器被入侵,攻击者也无法反向推导私钥内容,这种机制尤其适合需要远程管理多台服务器的场景。
操作环境准备
1、确认系统版本
- cat /etc/redhat-release
建议使用CentOS 7或更高版本以获得更好的兼容性
2、检查SSH服务状态
- systemctl status sshd
若未安装可通过yum install openssh-server
完成安装

密钥生成步骤详解
1、打开终端并执行生成命令
- ssh-keygen -t rsa -b 4096
-t rsa
指定密钥类型为RSA
-b 4096
定义密钥长度为4096位(当前安全标准)
2、设置存储路径
默认保存到/home/用户名/.ssh/
目录,建议直接按回车采用默认路径

3、创建密钥密码(可选但强烈建议)
输入至少12位包含大小写字母、数字和特殊字符的组合密码,为空则生成无密码密钥
4、查看生成结果
- ls -l ~/.ssh/
应存在id_rsa
(私钥)和id_rsa.pub
(公钥)两个文件
服务器端配置
1、创建授权文件
- mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys
2、导入公钥信息
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3、设置严格权限
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/authorized_keys
4、修改SSH配置文件
使用vim或nano编辑/etc/ssh/sshd_config
:
- PubkeyAuthentication yes
- PasswordAuthentication no # 禁用密码登录提升安全性
5、重启服务生效
- systemctl restart sshd
客户端连接测试
将私钥文件下载到本地(如Windows系统使用PuTTY):
1、使用SFTP工具安全传输id_rsa
文件
2、配置SSH客户端指定私钥路径
3、尝试连接服务器:
- ssh -i /path/to/id_rsa 用户名@服务器IP
若提示输入密钥密码即表示配置成功,首次连接需确认服务器指纹信息。
安全加固建议
1、私钥保护准则
- 禁止通过邮件或即时通讯工具传输
- 存储介质建议使用加密U盘或硬件安全模块(HSM)
- 定期使用ssh-keygen -p
更改密钥密码
2、访问控制策略
- 在authorized_keys
文件前添加from="IP段"
限制源地址
- 配置Fail2Ban防御暴力破解尝试
- 每季度轮换一次密钥对
3、应急处理方案
- 保留至少一个备用管理通道(如控制台访问)
- 定期测试密钥登录功能是否正常
- 建立密钥吊销清单机制
密钥管理是服务器安全体系的基础环节,实际操作中建议结合具体业务场景,制定分级的密钥使用策略,对于高敏感系统,可考虑采用ED25519算法生成更短但强度相当的密钥,技术团队应建立完整的密钥生命周期管理制度,从生成、存储、使用到销毁形成闭环管理,这才是构建可信计算环境的核心要素。