首页/系统与基础设施/自动化运维速查/密钥文件的权限与存放
排障与安全50 条

密钥文件的权限与存放

私钥安全性一半取决于权限位与属主,另一半取决于存放位置是否会被同步、备份或打包分发;权限过宽会导致客户端直接忽略密钥,而放入共享目录或版本库则会导致不可控的副本扩散。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​‌​‌‌​‌‌​​‌​‌​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​‌‌​​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​‌‌​‌​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

权限位本身就是内容保护的一部分

私钥是文件形式的身份,它的安全性一半靠文件内容、一半靠文件权限与存放位置。连接类工具在读取私钥时会做权限检查:如果文件可被同组或其他用户读写,通常直接拒绝使用,因为这意味着密钥可能已被他人复制。这里有两层要同时满足——客户端接受的权限位,以及存放位置本身是否处在会被同步、备份、打包分发的目录里。后者常被忽略,而它造成泄露的概率反而更高。

基本信息

适用对象Linux、macOS 与 Windows 上的密钥文件
推荐权限目录仅属主可访问,私钥文件仅属主可读
检查点权限位、属主、所在目录的可访问范围
常见拒绝原因私钥文件对同组或其他用户开放读写
存放原则只放在需要的机器上,不进入共享目录与版本库

存放与权限要点

  • 私钥只留在需要发起连接的机器上,不复制到被管理的主机
  • 目录整体收紧:目录权限放宽会让目录内文件的实际暴露面扩大
  • 避免同步目录:云盘、共享盘、备份目录会被自动分发,等于主动扩散
  • 禁止进入版本库:提交后再删除也仍在历史记录里,需要彻底重写历史
  • 生成时用更强的口令保护:口令加密后的私钥即使副本外泄也难以直接使用
  • 按用途分密钥:一把密钥走天下时,收回某一处就必须停用全部

权限检查与修正

权限检查与修正
ls -l ~/.ssh            # 查看目录内文件权限
stat -c '%A %U:%G %n' ~/.ssh/id_ed25519   # 精确查看权限与属主
chmod 700 ~/.ssh        # 目录仅属主可进入
chmod 600 ~/.ssh/id_ed25519        # 私钥仅属主可读写
chmod 644 ~/.ssh/id_ed25519.pub    # 公钥可公开,权限要求宽松
chmod 600 ~/.ssh/authorized_keys   # 服务端侧授权文件同样收紧
ls -ld ~                # 家目录若对他人可写,部分校验会直接失败

权限要求对照

对象建议权限过宽后果
密钥目录仅属主可访问目录内文件暴露给他人或被拒绝使用
私钥文件仅属主可读写客户端拒绝使用或密钥被复制
公钥文件可公开读取无直接影响
服务端授权文件仅属主可读写被追加公钥后即可登录
家目录不可被他人写严格校验下密钥被忽略
权限检查失败时的报错通常提示忽略密钥或权限过于开放,但不同实现与版本的提示姿势不同。看到「密钥存在却像不存在」,先用统计命令核对权限与属主,再去看客户端的详细输出。
把私钥放进容器镜像或代码仓库是典型的长期隐患:副本一旦存在就无法确定扩散范围,处置上只能整体作废并重建。密钥应以运行时挂载或运行时获取的方式提供。

易错点

  • 改私钥权限时把公钥一起收紧:部分工具要求公钥可读,过度收紧会影响使用
  • 只改文件权限不看目录:家目录可被他人写会让严格模式直接忽略密钥
  • 把私钥放进云盘或备份目录:自动同步会把密钥副本分发到多台设备
  • 提交过私钥后仅做删除:版本历史中仍然可检索,必须整体作废重建
  • 同一把密钥复制到多台机器:任一台失守就需全量更换,应改按机器或按用途拆分

数据来源与参考

  • OpenSSH 手册页:ssh-keygen(1) 与 ssh(1) 权限校验
  • OpenSSH 手册页:sshd(8) 严格模式说明
  • NIST SP 800-57:密钥存储与生命周期

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/key-file-permission-storage.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌​‌​‌‌​‌‌​​‌​‌​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌​​‌‌​​‌‌​‌​​‌​‌‌​‌‌​​​‌‌​​‌​‌​​‌​‌‌​‌​‌‌‌​​​​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌​‌‌​‌​‌‌​‌​​‌​‌‌‌​​‌‌​‌‌‌​​‌‌​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​