ssh密钥认证需规范使用:优先选ed25519算法,严格保管私钥并设passphrase,服务端禁用密码认证且仅允公钥登录,定期轮换密钥并审计日志。

SSH 密钥认证是云服务器远程管理中最基础也最有效的安全加固手段。它用数学加密替代人工密码,从根本上规避暴力破解、撞库、键盘记录等常见攻击路径。关键不在于“用了没”,而在于“怎么用对”——密钥生成、分发、权限控制和后续维护,每一步都有明确的安全规范。
选对算法与长度,从源头筑牢防线
密钥强度直接决定安全上限。不建议使用已显脆弱的 rsa 2048(NIST 已建议淘汰),优先选择:
- ed25519:当前最优选,签名快、体积小、抗侧信道攻击强,兼容 OpenSSH 6.5+(绝大多数现代云环境均支持);
- rsa 4096:若需兼容老旧系统(如部分定制内核或嵌入式设备),可作为备选,但务必禁用 ssh-rsa 签名方式(OpenSSH 8.8+ 默认禁用);
- 避免使用 dsa 和 ecdsa(尤其 secp256k1),前者已被弃用,后者存在实现缺陷风险。
生成命令示例:ssh-keygen -t ed25519 -b 256 -C "admin@prod-server-2026" -f ~/.ssh/id_ed25519_prod
私钥保管必须零容忍泄露
私钥 = 服务器访问权。任何明文存储、共享、上传至代码仓库、截图、邮件发送,都等于主动交出控制权。
IT技术解决互联网公司网站模板是一款适合提供APP设计、网页开发、SEO优化、云服务、数据分析等服务的互联网公司宣传网站模板下载。提示:本模板调用到谷歌字体库,可能会出现页面打开比较缓慢。
- 本地保存路径权限必须严格:运行
chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_*; - 务必设置 passphrase(非空密码短语),它为私钥加第二道锁;
- 禁用私钥自动加载到未加密内存:避免在无保护终端中运行
ssh-add; - 生产环境严禁使用同一私钥登录多台服务器——应按角色/环境分离密钥(如
id_ed25519_db、id_ed25519_app)。
服务端配置要“只认钥、不认密”
仅上传公钥还不够,必须关闭密码入口,否则攻击者仍可暴力试探其他账户或弱密码用户。
- 编辑
/etc/ssh/sshd_config,确认以下三项: PubkeyAuthentication yesPasswordAuthentication no-
AuthenticationMethods publickey(强制仅允许密钥,比单纯禁用密码更彻底) - 重启服务前,先用新密钥另开一个会话测试登录成功,再执行
sudo systemctl restart sshd; - 检查
~/.ssh/authorized_keys文件权限为600,所属用户正确,且无多余空行或注释干扰解析。
持续运维:轮换、审计与失效控制
密钥不是一次配置终身有效。定期更新和监控是合规要求,也是实际防御需要。
- 设定密钥生命周期(建议 1 年),到期前自动提醒并触发轮换流程;
- 每次新增或删除密钥,须同步更新服务器上的
authorized_keys,并记录操作人、时间、用途; - 启用 SSH 登录日志审计:
sudo grep "Accepted publickey" /var/log/auth.log可追溯谁、何时、从哪台 IP 登录; - 员工离职或设备报废时,立即从所有服务器
authorized_keys中清除对应公钥——不能只删本地私钥。
安全不是功能开关,而是贯穿生成、部署、使用、退役全周期的规范动作。把密钥当证书管,把私钥当硬件令牌护,才能真正让 SSH 成为云服务器可信访问的基石。










