{"adoption": {"forks": 264, "observed_at": "2026-08-28T04:07:36.868578+00:00", "stars": 2995}, "canonical_url": "https://ross.abutalabs.com/products/arthepsy-ssh-audit", "card": {"archived": false, "artifact_type": "cli-tool", "description": "SSH server auditing (banner, key exchange, encryption, mac, compression, compatibility, security, etc)", "domain": ["security", "developer-tools", "networking"], "enriched": true, "function": ["security", "vulnerability-scanning", "cli"], "health_score": 20, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["arthepsy/ssh-audit"], "name": "arthepsy/ssh-audit", "platform": ["cli", "python", "cross-platform", "windows"], "pushed_at": "2024-06-28T23:48:45+00:00", "repo": "arthepsy/ssh-audit", "stars": 2995, "tags": ["ssh", "ssh-audit", "hardening", "cve", "penetration-testing", "server-audit", "command-line", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["audit my ssh server for weak algorithms", "check which ciphers and macs my sshd supports", "find cves affecting my openssh version", "harden ssh server configuration recommendations", "test ssh server before a security review", "compare ssh algorithm compatibility across openssh dropbear libssh"], "what_it_is": "ssh-audit is a dependency-free Python CLI tool that audits SSH servers by grabbing banners and enumerating key exchange, host key, encryption, MAC, and compression algorithms. It flags weak or legacy algorithms, recommends configuration changes based on the detected software version, and lists related CVEs.", "when_to_avoid": ["you need a full network vulnerability scanner rather than an SSH-specific audit", "you want automated remediation or config file editing rather than reporting", "you need continuous monitoring rather than on-demand auditing"], "when_to_choose": ["you need a zero-dependency, portable Python tool for SSH server configuration audits", "you want algorithm recommendations and CVE lookups for OpenSSH, Dropbear, or libssh servers", "you need quick command-line checks of SSH1/SSH2 support and weak algorithm detection"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/arthepsy-ssh-audit", "repo": "arthepsy/ssh-audit", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:36.868578+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:30:45.428312+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "52ab0f8d68fe77de1faac1966adc4b05bdfceeb1aab47e0ba5f585b6c5f5267f", "fetched_at": "2026-08-28T04:07:36.868578+00:00", "kind": "readme", "missing": false, "url": "https://github.com/arthepsy/ssh-audit"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3906, "days_push": 796, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}