ssh-audit可快速检测openssh配置合规性,支持本地文件扫描与远程服务审计,输出分级问题并提供修复建议,可集成ci/cd实现自动化巡检。

可以用 ssh-audit 工具快速检测 OpenSSH 配置文件(sshd_config)是否符合安全基线,比如 NIST、CIS 或自定义策略。
安装并运行 ssh-audit
ssh-audit 是一个轻量、离线、纯 Python 的审计工具,不依赖远程服务,直接解析配置文件或连接到 SSH 服务进行深度检查。
- 安装方式(推荐 pip):
pip3 install ssh-audit - 本地配置文件扫描:
ssh-audit --config /etc/ssh/sshd_config - 远程服务扫描(需网络可达):
ssh-audit example.com:22
识别常见合规问题
输出结果会按严重等级分类,明确标出不合规项及其依据。例如:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
-
高危:使用
Protocol 1(已废弃)、PermitRootLogin yes、UsePrivilegeSeparation no -
中危:未禁用空密码(
PermitEmptyPasswords no缺失)、密钥算法过时(如ssh-rsa在 OpenSSH 8.8+ 默认禁用) -
建议项:启用
ClientAliveInterval防会话悬挂、设置MaxAuthTries 3防暴力尝试
对接自动化流程
把 ssh-audit 集成进 CI/CD 或配置巡检脚本,实现定期验证:
- 输出 JSON 格式便于解析:
ssh-audit --config /etc/ssh/sshd_config --json > audit.json - 用简单 shell 脚本判断是否存在高危项:
ssh-audit --config /etc/ssh/sshd_config 2>&1 | grep -q "HIGH\|CRITICAL" && echo "不合规" || echo "通过" - 配合 Ansible 的
community.general.ssh_audit模块,批量扫描多台主机
补充校验与修复建议
ssh-audit 不修改配置,仅诊断。发现不合规项后,需人工或脚本修复,并重启服务验证:
- 修改前备份:
cp /etc/ssh/sshd_config{,.bak} - 语法检查避免锁死:
sshd -t(返回 0 表示语法正确) - 重启服务:
systemctl reload sshd(reload 比 restart 更稳妥) - 对关键变更(如禁用密码登录),建议先在测试环境验证登录路径










