首页/系统/信创系统运维速查/SSH 密钥生成与分发
命令与包管理65 条

SSH 密钥生成与分发

密钥登录替代口令:ssh-keygen 生成密钥对,ssh-copy-id 分发公钥,私钥加口令短语保护;服务器批量管理的基本功。

信创系统运维速查系统更新于 2026-10-13

密钥对是怎么用的

密钥认证用的是非对称加密:生成时得到一对密钥,私钥留在自己手里,公钥可以放心分发到服务端的授权文件里。登录时服务端用公钥出一道只有对应私钥能解的题,客户端解开即证明身份,口令不会在网络中传输,也不存在被穷举的空间。生成时要选算法与位数、给私钥加口令短语保护、把文件权限收好,分发时用现成工具把公钥写进服务端。三件事做完,才算把这条通道建稳。

基本信息

生成命令密钥生成工具,可指定算法、位数、备注与输出路径
算法选择现代系统优先使用较新的椭圆曲线算法
兼容方案老系统不支持新算法时退回指定位数的 RSA
密钥长度RSA 建议不低于 2048 位,常用 4096 位
口令短语生成时可设置,私钥泄露后仍多一层保护
文件权限目录与私钥必须收紧,否则认证会被拒绝

典型使用场景

  • 替代口令登录:为运维账号与自动化流程建立密钥通道
  • 免交互自动化:发布与批处理脚本通过密钥登录目标机
  • 集中运维:为团队账号统一部署公钥,便于权限回收
  • 多机分发:把同一公钥写入多台目标机的授权文件
  • 兼容老系统:目标环境较旧时选择受支持的算法与位数
  • 凭据管理:私钥加口令短语并配合代理使用,兼顾安全与便利

生成与分发

生成与分发
ssh-keygen -t ed25519 -C 'ops@company' -f ~/.ssh/id_ed25519   # 生成密钥对并加备注
ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_legacy            # 兼容老系统的备选方案
ssh-copy-id -i ~/.ssh/id_ed25519.pub deploy@10.0.10.21       # 分发公钥到目标机
ssh -i ~/.ssh/id_ed25519 deploy@10.0.10.21 'hostname'        # 验证密钥登录可用
chmod 700 ~/.ssh && chmod 600 ~/.ssh/id_ed25519               # 收紧目录与私钥权限
ssh-add ~/.ssh/id_ed25519                                     # 加载到代理,免去重复输入口令

文件与权限要点

对象建议权限说明
密钥目录仅属主可访问对组或其它用户开放写权限会被拒绝
私钥文件仅属主可读写权限过宽时客户端直接拒绝使用
公钥文件普通可读即可内容可公开分发
服务端授权文件仅属主可读写权限过宽同样会导致认证失败
已知主机文件自动维护记录目标主机指纹,首次连接时确认
新算法在较老的系统中可能不被支持,这类环境需要退回到指定位数的 RSA。选型时以目标端实际支持的算法为准,可以先在测试机上验证一次登录,再决定统一采用哪种密钥类型,避免批量部署后集体用不了。
私钥不要在多台机器之间复制扩散,也不要把带口令短语的私钥明文写在脚本里:一旦泄露,等于把对应账号交出去。规范做法是每人使用独立密钥、代理转发代替拷贝,并建立密钥的登记与撤销流程。

易错点

  • 私钥文件权限过宽,客户端直接拒绝使用,报错信息不直观,容易怀疑密钥本身有问题
  • 在同一批目标机上直接复用同一个私钥,一处泄露等于全部失守,也无法定位责任人
  • 老系统上使用新算法生成密钥,认证一直失败,误判为服务端配置错误
  • 把私钥当作可随意拷贝的配置文件分发,缺乏登记与撤销机制,人员变动后权限收不回来

数据来源与参考

  • OpenSSH ssh-keygen 手册
  • 安全实践指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌