PAGES
← all tools
◆ Vulnerability Management

ssh-audit

v3.9.0 open-source

SSH server & client security auditing (banner, key exchange, encryption, mac, compression, compatibility, security, etc)

Summary

ssh-audit is an open-source, MIT-licensed command-line tool for auditing SSH server and client configuration, run against a host or client directly from the terminal or piped through a list of targets for bulk scans. It grabs the banner, fingerprints the software and OS, and inspects key-exchange, host-key, cipher and MAC algorithms against known security history, flagging weak or backdoor-suspect choices like NIST elliptic-curve key exchanges, while policy scans check a fleet against a hardened baseline such as the built-in Ubuntu, Debian, Rocky Linux and OpenSSH guides. It suits system administrators and security engineers responsible for SSH hardening rather than broader network scanning, and its README frames it as the maintained successor to the original arthepsy/ssh-audit project after that one went inactive. With 35 contributors, 31 commits in the past year, and a release 48 days ago, it is actively maintained.

SSH server & client security auditing (banner, key exchange, encryption, mac, compression, compatibility, security, etc)

How ssh-audit helps

Which key-exchange and host-key algorithms on this server are weak or backdoor-suspect?

inspects the negotiated key-exchange, host-key, cipher and MAC algorithms against known security history and flags entries like NIST elliptic-curve key exchanges and their matching host keys as fail-level, suspected NSA-backdoored choices

Is this fleet still configured the way we think it is, against a hardened baseline?

runs a policy scan comparing each host's algorithm set against a built-in guide such as Ubuntu, Debian, Rocky Linux or OpenSSH and reports where a target's configuration deviates

Which of these hosts are exposed to future decryption of today's traffic?

flags every key exchange lacking post-quantum protection so encrypted sessions vulnerable to harvest-now-decrypt-later capture can be identified before hardening

What software and OS is actually answering on port 22 across my hosts?

grabs the banner from each target and fingerprints the underlying software and operating system, feeding that into the algorithm recommendations it prints

Can I audit an SSH daemon that isn't reachable over a normal network port?

connects over a UNIX socket path instead of a TCP host and port, so daemons inside containers or CI/CD pipelines can be checked without exposing a network listener

Which hosts in a mixed-port fleet still need attention when I scan them all at once?

reads a file of targets with optional per-host ports, applies a default port to any entry missing one, and reports pass/fail findings per host in one run

all 11 features, with the evidence for each →

Languages

Not documented

Features

11 capabilities across 5 areas · 3 backed by code, an API document or a real run

Built from ssh-audit's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date. Group names and tags are our labels.

Compare with peers →

What ssh-audit offers you

  • Command-line interface5
  • CI/CD pipeline integration2
  • JSON data export1
SSH Configuration Auditing 3 capabilities This is the core purpose of ssh-audit: connecting to SSH servers and inspecting every protocol-level setting that affects security. It covers ciphers, key exchange algorithms, host key types, and flags weaknesses including exposure to post-quantum threats.
Cipher and algorithm recognition shipped suggested Recognises a broad catalogue of ciphers, host key types, and key exchange algorithms, including newly standardised and post-quantum variants. 21 releases · first seen Aug 2019

Suggested capability: Service and version detection. This is our guess, not confirmed.

release 21 total

  • Identifies 2 new ciphers: AEAD_CAMELLIA_128_GCM and AEAD_CAMELLIA_256_GCM. v3.9.0 · Jul 2026 · source · release history
  • Identifies 11 new host key types including ML-DSA variants (mldsa-44, mldsa-65, mldsa-87, and OpenSSH-namespaced equivalents) and webauthn-sk-ecdsa-sha2-nistp256-cert-v01@openssh.com. v3.9.0 · Jul 2026 · source · release history
  • Identifies 11 new host key algorithms including ML-DSA variants (mldsa-44, mldsa-65, mldsa-87, and OpenSSH variants). v3.9.0 · Jul 2026 · source · release history
  • Adds LANcom LCOS server recognition and Ed448 key extraction. v3.3.0 · Oct 2024 · source · release history
  • Added 1 new cipher: aes128-ocb@libassh.org v3.2.0 · Apr 2024 · source · release history
  • Added 1 new key exchange algorithm: gss-nistp384-sha384-* v3.2.0 · Apr 2024 · source · release history
SSH server auditing verified Connects to an SSH server and produces a detailed report on its cryptographic configuration and protocol settings. 7 releases · 4 other sources · first seen Apr 2023

Also counts toward: Command-line interface

release 7 total

  • Reports ECDSA and DSS fingerprints when running in verbose mode. v3.3.0 · Oct 2024 · source · release history
  • CVE information based on server/client version numbers has been removed entirely from output. v3.3.0 · Oct 2024 · source · release history
  • Adds -g and --gex-test flags for granular GEX modulus size tests v2.9.0 · Apr 2023 · source · release history
  • Updates generic failure/warning messages with specific cipher algorithm names v2.9.0 · Apr 2023 · source · release history
  • CBC mode ciphers downgraded to warning status instead of failure v2.9.0 · Apr 2023 · source · release history
  • SHA-1 algorithms now trigger failure status in results v2.9.0 · Apr 2023 · source · release history

docs

  • Audits SSH server and client configurations by analyzing algorithms, banners, and policies for security weaknesses.

command line

we ran it

  • The server runs OpenSSH 9.7 and the output (truncated) shows 4 fail-level findings: three NIST elliptic-curve key-exchange algorithms (ecdh-sha2-nistp256/384/521) and the ecdsa-sha2-nistp256 host key… Aug 2026 · the full run

example

  • Audit local SSH server ssh-audit localhost
Post-quantum cryptography detection shipped suggested Identifies whether key exchange algorithms provide post-quantum protection and warns when a server is exposed to Harvest Now, Decrypt Later attacks. 4 releases · 1 other source · first seen Feb 2021

Suggested capability: Service and version detection. This is our guess, not confirmed.

release

  • Adds warnings on all key exchanges lacking post-quantum protection, flagging exposure to Harvest Now, Decrypt Later attacks. v3.9.0 · Jul 2026 · source · release history
  • Warns on all key exchanges that lack post-quantum protections (Harvest Now, Decrypt Later strategy). v3.9.0 · Jul 2026 · source · release history
  • Identifies 2 new post-quantum key exchanges: mlkem768nistp256-sha256 and mlkem1024nistp384-sha384. v3.9.0 · Jul 2026 · source · release history
  • Adds support for post-quantum key exchanges mlkem768x25519-sha256 and sntrup761x25519-sha512. v3.3.0 · Oct 2024 · source · release history

example

  • Verify that a server supports the new sntrup761x25519 key exchange. ssh-audit target.example.com | grep sntrup761x25519-sha512@openssh.com v2.4.0 · Feb 2021 · source
Policy and Compliance Checking 2 capabilities ssh-audit can evaluate a server against a named hardening policy and report exactly where it deviates. Built-in policies cover common OpenSSH versions and platforms, and built-in hardening guides are available offline for acting on the findings.
Policy-based compliance checking shipped Tests an SSH server against a chosen policy and lists every setting that does not conform. 15 releases · 2 other sources · first seen Mar 2020

release 15 total

  • Adds built-in policies for OpenSSH 10.0–10.4 and new hardening guides/policies for Debian 13, Rocky Linux 10, and Ubuntu 26.04. v3.9.0 · Jul 2026 · source · release history
  • Adds allow_hostkey_subset_and_reordering policy option, letting policy definitions accept targets with a stricter or differently-ordered host key list. v3.9.0 · Jul 2026 · source · release history
  • Adds built-in policies for OpenSSH 10.0 through 10.4 and new platform guides for Debian 13, Rocky Linux 10, and Ubuntu 26.04. v3.9.0 · Jul 2026 · source · release history
  • New allow_hostkey_subset_and_reordering policy option permits targets with stricter or differently ordered host key lists. v3.9.0 · Jul 2026 · source · release history
  • Adds built-in policies for Ubuntu 24.04 LTS server & client, OpenSSH 9.8, and OpenSSH 9.9. v3.3.0 · Oct 2024 · source · release history
  • Added allow_algorithm_subset_and_reordering directive to custom policies to allow targets to pass with subset or re-ordered lists of host keys, kex, ciphers, and MACs v3.2.0 · Apr 2024 · source · release history

example

  • List all built-in policies ssh-audit -L
  • Run policy audit against server ssh-audit -P ["policy name" | path/to/server_policy.txt] targetserver
Built-in hardening guides shipped Provides offline hardening guidance for common Linux distributions and OpenSSH, so remediation steps are immediately available after a scan. 3 releases · 1 other source · first seen Oct 2024

release

  • New --list-hardening-guides and --get-hardening-guide flags surface built-in hardening guides for common platforms (Debian, Ubuntu, Rocky Linux, OpenSSH) without requiring internet access. v3.9.0 · Jul 2026 · source · release history
  • New --list-hardening-guides and --get-hardening-guide flags expose built-in hardening guides for all supported platforms. v3.9.0 · Jul 2026 · source · release history
  • Updated built-in policies for Amazon Linux 2023, Debian 12, Rocky Linux 9, and Ubuntu 22.04 to improve host key efficiency and quantum-attack cipher resistance. v3.3.0 · Oct 2024 · source · release history

example

  • Retrieve the built-in hardening guide for a specific platform to apply recommended SSH configuration without visiting an external site. ssh-audit --list-hardening-guides ssh-audit --get-hardening-guide "Debian 13" v3.9.0 · Jul 2026 · source
Bulk and Multi-Target Scanning 1 capability ssh-audit can accept a list of hosts and scan them concurrently rather than one at a time. This makes it practical to audit an entire fleet of SSH servers in a single run.
Batch and multi-target scanning verified suggested Reads a file of target hosts and scans them in parallel, auditing many SSH servers in one operation. 3 releases · 3 other sources · first seen Feb 2021

Suggested capability: Active network scanning. This is our guess, not confirmed.

Also counts toward: Command-line interface

release

  • When scanning multiple targets with -T/--targets, the -p/--port option now sets the default port for all hosts that don't specify one explicitly. v3.3.0 · Oct 2024 · source · release history
  • Added --dheat option to test targets for the DHEat denial-of-service attack v3.2.0 · Apr 2024 · source · release history
  • Multi-threaded scanning backend significantly reduces scan time for large target sets. v2.4.0 · Feb 2021 · source · release history

command line

  • --targets — a file containing a list of target hosts (one per line, format HOST[:PORT]). Use -p/--port to set the default port for all hosts. Use --threads to control concurrent scans v3.9.0 · Jul 2026 · command-line history

example

  • Test a target server for the DHEat denial-of-service vulnerability ssh-audit --dheat <target> v3.2.0 · Apr 2024 · source
  • Audit multiple servers from file ssh-audit -T servers.txt
Flexible Connectivity 3 capabilities ssh-audit supports scanning targets that are not accessible over a standard TCP connection, including servers exposed only via UNIX sockets or behind network boundaries. A configurable timeout prevents scans from hanging on unresponsive hosts.
SOCKS5 proxy scanning shipped suggested Routes scan traffic through a SOCKS5 proxy to reach targets that are not directly accessible from the scanning host. 2 releases · 2 other sources · first seen Oct 2024

Suggested capability: Active network scanning. This is our guess, not confirmed.

Also counts toward: Command-line interface

release

  • New --socks5 host:port flag enables scanning through a SOCKS5 proxy (implies --skip-rate-test). v3.9.0 · Jul 2026 · source · release history
  • Adds IPv6 support for DHEat and connection rate tests. v3.3.0 · Oct 2024 · source · release history

example

  • Scan an internal host through a SOCKS5 jump proxy — useful when direct connectivity to the target is unavailable. ssh-audit --socks5 proxy.example.com:1080 target-host.internal v3.9.0 · Jul 2026 · source
  • Scan a list of hosts on a non-standard port, letting individual entries override the default — useful for bulk audits of a mixed fleet. ssh-audit -T targets.txt -p 222 v3.3.0 · Oct 2024 · source
Connection timeout control verified Lets the user set how long the tool will wait when connecting to or reading from a target before giving up. 1 release · 1 other source · first seen Aug 2019

release

  • Adds -t / --timeout CLI argument for connection and reading timeouts. v2.0.0 · Aug 2019 · source · release history

command line

  • --timeout — timeout (in seconds) for connection and reading (default: %(default)s) v3.9.0 · Jul 2026 · command-line history
UNIX socket scanning shipped suggested Scans SSH daemons exposed on UNIX sockets, making it usable inside containers and CI/CD pipelines. 1 release · 1 other source · first seen Jul 2026

Suggested capability: Attack surface inventory. This is our guess, not confirmed.

Also counts toward: CI/CD pipeline integration

release

  • Supports scanning SSH servers over UNIX sockets (e.g. unix:///path/to/socket), enabling auditing in containerized and CI/CD environments. v3.9.0 · Jul 2026 · source · release history

example

  • Audit an SSH daemon exposed only via a UNIX socket inside a container or CI/CD pipeline — no TCP port required. ssh-audit unix:///run/ssh-unix-local/socket v3.9.0 · Jul 2026 · source
Other 2 capabilities
JSON output support shipped Outputs scan results in JSON format for machine-readable consumption and CI integration. 7 releases · 2 other sources · first seen Nov 2019

Also counts toward: CI/CD pipeline integration, Command-line interface, JSON data export

release 7 total

  • Adds TCP port information to JSON output from policy scans. v3.3.0 · Oct 2024 · source · release history
  • Color output is disabled if the NO_COLOR environment variable is set v3.2.0 · Apr 2024 · source · release history
  • The JSON output schema changes: banner protocol, enc, and mac fields now include notes arrays (failure, warning, info), breaking parsers expecting the old field structure. v3.0.0 · Sep 2023 · source · release history
  • Adds failure, warning, and info notes fields to the JSON output schema for banner protocol, enc, and mac items. v3.0.0 · Sep 2023 · source · release history
  • JSON output now includes recommendations and CVE fields v2.9.0 · Apr 2023 · source · release history
  • JSON target field always includes the port number (e.g., host:22) v2.9.0 · Apr 2023 · source · release history

example

  • Disable color output in terminal sessions that do not support or require ANSI colors NO_COLOR=1 ssh-audit <target> v3.2.0 · Apr 2024 · source
  • Retrieve SSH audit results in JSON format and inspect the additional_notes field for extra context. ssh-audit -J <target> | jq '.additional_notes' v3.1.0 · Dec 2023 · source
SSH client auditing shipped Audits the SSH protocol configurations and algorithms accepted by a local SSH client binary. 2 releases · 3 other sources · first seen Nov 2019

Also counts toward: Command-line interface

release

  • Adds des and 3des ciphers for client testing. v2.1.1 · Nov 2019 · source · release history
  • Adds -c / --client-audit flag to audit protocols accepted by SSH client software v2.1.0 · Nov 2019 · source · release history

docs

  • Audits SSH server and client configurations by analyzing algorithms, banners, and policies for security weaknesses.

example

  • Audit the SSH protocol versions accepted by a local client binary. ssh-audit -c /usr/bin/ssh v2.1.0 · Nov 2019 · source
  • Audit client configuration ssh-audit -c

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for ssh-audit, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail ssh-audit puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

Show

16 entries

  1. July 20263
  2. October 20241
  3. April 20241
  4. December 20231
  5. September 20231
  6. April 20231
  7. August 20211
  8. February 20211
  9. October 20201
  10. September 20201
  11. March 20201
  12. November 20192
  13. August 20191
    Show

    16 entries

    Project health

    Issue, contributor and maintainer activity in jtesta/ssh-audit, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 2 −1 vs prior 12 months
    2. Maintainers 1 +0 joined · −0 left, last 12 months
    3. Bus factor 1 committers behind half the commits
    4. Community-filed 88% of issues opened, last 12 months
    5. Median time to close 37 days first maintainer reply 3.9 days
    6. Open backlog 37 of 280 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 37
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 4,297
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    None of its release's images build from a lockfile we can read.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →