企业级SSH密钥轮换核心是90天有效期+提前7天提醒+30天旧密钥保留的过渡机制,需新密钥验证登录、自动化任务切换、服务端加固及权限检查后,再清理旧密钥。
配置服务器 SSH 密钥轮换机制,核心是建立可重复、可验证、低风险的更新流程,而不是简单替换密钥。重点在于新旧密钥并存过渡、权限控制严格、验证闭环完整。
不建议“一刀切”立即删除旧密钥。企业级实践普遍采用 90 天有效期 + 提前 7 天提醒 + 30 天保留期的组合策略:
~/.ssh/authorized_keys,不移除旧条目优先选用 Ed25519 算法(安全性高、性能好),避免弱参数:
ssh-keygen -t ed25519 -C "rot-202606-prod" -f ~/.ssh/id_ed25519_202606
ssh-copy-id -i ~/.ssh/id_ed25519_202606.pub user@server 安全追加公钥;若不可用,改用管道方式确保权限正确:cat ~/.ssh/id_ed25519_202606.pub | ssh user@server "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
密钥有效 ≠ 登录安全。必须同步收紧服务端配置:
/etc/ssh/sshd_config 中禁用密码登录:PasswordAuthentication no,且 PubkeyAuthentication yes
~ 应为 755,~/.ssh 必须是 700,~/.ssh/authorized_keys 必须是 600sshd -t 验证配置语法,再 systemctl reload sshd(非 restart,避免断连)authorized_keys 中为每行公钥添加限制项,例如:command="/usr/bin/uptime",no-port-forwarding,no-X11-forwarding,from="192.168.10.0/24" ssh-ed25519 AAAA...
轮换不是终点,而是持续验证的起点:
ssh -i ~/.ssh/id_ed25519_202606 user@server 'hostname; id'
journalctl -u sshd --since "5 minutes ago" | grep "Accepted publickey"
key_filename 路径,并测试任务是否仍能执行