You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A command-line tool that scans sshd_config files against security best practices and CIS benchmarks. Reports findings with severity levels, descriptions, and actionable remediation steps.
Features
23 security rules across authentication, cryptography, access control, and hardening
CIS benchmark mapping — every rule references its CIS SSH configuration control
Severity classification — critical, high, medium, low with color-coded output
Multiple report formats — terminal (Rich tables), JSON, and HTML
Config parser — handles case-insensitive directives, comments, Include paths, and Match blocks
Zero system dependencies — only Python 3.10+ with typer and rich
Create a new file in ssh_auditor/rules/ (or add to an existing category)
Subclass Rule from ssh_auditor.rules.base:
fromssh_auditor.rules.baseimportRule, Finding, SeverityclassMyNewRule(Rule):
rule_id="CATEGORY-XXX"severity=Severity.MEDIUMdescription="What this rule checks"remediation="How to fix it"cis_reference="CIS X.Y.Z"defcheck(self, directives):
findings= []
# Access directives via: [d for d in directives if d['directive'] == 'MyDirective']# Return list of Finding() objects (empty if compliant)returnfindings
Add the rule class to evaluator.py's import list (or use auto-discovery)
Write tests in tests/test_<category>_rules.py
Project dependencies
Package
Purpose
typer
CLI framework (lightweight, auto-help generation)
rich
Terminal formatting (tables, panels, color output)
pytest
Testing framework
No other external dependencies — the parser uses only Python stdlib (re, pathlib).
License
MIT
About
SSH server configuration hardening auditor against CIS benchmarks