ssh密钥合规检查需从“谁该有、在哪、权限对不对、内容可信吗”四维度系统验证,覆盖全路径authorized_keys文件,比对sha256指纹与备案库,校验权限归属,并标记无注释、未备案、归属异常等高风险项。

SSH 密钥合规检查不是只看“有没有密钥”,而是围绕“谁该有、在哪、权限对不对、内容可信吗”四个维度系统验证。重点在于发现异常而非罗列文件。
覆盖所有 authorized_keys 文件位置
不能只扫 /home 下用户目录,还要查 root、系统服务账户、非标准路径:
- 运行 find /home -path '*/.ssh/authorized_keys*' -type f -size +0c 2>/dev/null 扫描普通用户
- 补充 find /root /etc/ssh /var/lib -path '*/.ssh/authorized_keys*' -type f -size +0c 2>/dev/null 覆盖高权限和系统路径
- 检查 sshd_config 中 AuthorizedKeysCommand 配置项,确认是否启用外部密钥源(如 LDAP 或数据库)
比对公钥指纹与可信清单
单看密钥内容无法判断授权状态,必须提取 SHA256 指纹并对照备案库:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- 对每条公钥行执行 ssh-keygen -lf /dev/stdin 2>/dev/null | awk '{print $2}' 获取指纹
- 记录每条密钥所属用户、文件路径、stat -c '%y' $file 查看最后修改时间
- 标记三类高风险项:无注释说明、指纹未在运维备案中、归属已停用或离职账户
校验文件与目录权限及归属
权限错误本身即为安全事件信号,OpenSSH 会直接拒绝加载:
- authorized_keys 文件应为 600 或 644,属主必须是对应用户(如 alice:alice)
- .ssh 目录权限 ≤755,且 不能有组或其他人写入位(即不能含 w 权限)
- 家目录(~)不能被组或其他用户写入(如 chmod 755 ~ 可接受,775 则告警)
自动化脚本轻量落地
一个可直接运行的检查脚本核心逻辑:
- 遍历所有找到的 authorized_keys 文件
- 逐行提取公钥、生成指纹、检查权限和属主
- 输出含路径、用户、指纹、权限、修改时间的可疑条目
- 不修复、只报告——修复动作需人工复核后执行










