首页/安全/取证与溯源速查/全盘搜索授权密钥文件
Linux 取证135 条

全盘搜索授权密钥文件

权限持久化可能藏在不常用的家目录与服务目录:全盘搜索 authorized_keys 与公钥文件可发现被忽略的入口。

取证与溯源速查安全更新于 2026-10-13

排查公钥授权

写入 authorized_keys 是最常见的持久化手段之一:无需口令、不会产生口令错误日志,还可以只对特定来源地址生效。排查不能只找默认路径,因为 sshd 的 AuthorizedKeysFile 可以改到任意位置,容器与镜像挂载目录下同样可能藏着密钥文件。

基本信息

搜索目标authorized_keys 以及其它公钥文件
默认位置/root/.ssh 与 /home/<用户>/.ssh
可配置项sshd_config 中的 AuthorizedKeysFile
扩展搜索.ssh 目录、id_*.pub 以及非默认路径
记录方式对每份文件计算哈希,记录密钥条数与注释
权限要求读取其它用户家目录需要 root

典型使用场景

  • 确认是否存在未授权的密钥登录途径
  • 核对密钥注释与来源是否符合运维规范
  • 分析新增密钥的时间与所属账号
  • 与认证日志中的密钥登录记录对照
  • 清除时按流程逐条评估影响

最小示例

最小示例
find / -xdev \( -name authorized_keys -o -name 'id_*.pub' \) 2>/dev/null | head -30
find / -xdev -type d -name .ssh 2>/dev/null | head     # 所有 .ssh 目录
sshd -T 2>/dev/null | grep -i authorizedkeysfile       # 确认实际搜索路径
ls -l --time-style=long-iso /root/.ssh/ 2>/dev/null
sha256sum /root/.ssh/authorized_keys 2>/dev/null
awk '{print $1, $3}' /root/.ssh/authorized_keys 2>/dev/null | head   # 类型与注释

观察项与要点

观察项含义注意
文件位置授权文件所在路径非默认路径更值得警惕
密钥类型ssh-ed25519、ssh-rsa 等老旧类型需评估合规性
注释字段通常含生成者信息应与实际人员核对
文件时间戳mtime 与 ctime新增密钥的时间线索
行首选项command、from 等限制会改变登录行为,需单独看
对每份 authorized_keys 计算哈希并记录条数与注释,便于后续对比与说明改动范围。
搜索单个文件系统要用 -xdev,否则会跨挂载点;多分区主机需要对每个挂载点分别执行。
容器与镜像挂载目录下同样可能存在密钥文件,排查范围要覆盖这些路径,不要只扫根文件系统。
密钥注释里常带主机名或工单号,可与变更记录交叉核对;注释为空或内容异常的密钥应优先处理。
删除密钥前先在报告中固化内容与哈希并保留副本:直接删除会改写时间戳,后续比对将失去依据。

易错点

  • 只搜默认路径:AuthorizedKeysFile 可被改到任意位置,只看 ~/.ssh 会漏掉配置过的路径
  • 搜索跨越挂载点:未加 -xdev 会进入其它文件系统,耗时且因权限产生大量报错
  • 直接删除可疑密钥:破坏原始状态并改写时间戳,事后无法说明改动范围
  • 忽略行首选项:command= 与 from= 会改变登录行为,只看密钥本身判断不全

数据来源与参考

  • OpenSSH 手册(authorized_keys 位置)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌