Fast vanity SSH key pair finder/generator.
  • Rust 82%
  • Nix 18%
Find a file
2025-10-26 11:11:50 +01:00
.github/workflows feat(license): add MPL-2.0 2025-10-20 23:24:03 +02:00
src fix: respect case sensitive flag 2025-10-25 21:28:52 -08:00
.envrc feat(license): add MPL-2.0 2025-10-20 23:24:03 +02:00
.gitignore chore: add items to gitignore 2025-10-20 23:09:22 +02:00
Cargo.lock chore: bump version 2025-10-26 11:11:50 +01:00
Cargo.toml chore: bump version 2025-10-26 11:11:50 +01:00
default.nix feat(license): add MPL-2.0 2025-10-20 23:24:03 +02:00
flake.lock feat: add flake 2025-10-20 20:40:29 +02:00
flake.nix feat(license): add MPL-2.0 2025-10-20 23:24:03 +02:00
LICENSE feat(license): add MPL-2.0 2025-10-20 23:24:03 +02:00
README.md feat(doc): add readme, crate docs 2025-10-25 18:11:11 +02:00
shell.nix feat(license): add MPL-2.0 2025-10-20 23:24:03 +02:00

vanissh

Vanity SSH public key finder. Specify a pattern (e.g. hello), and this tool will generate random ed25519 SSH key pairs, until this pattern is found in the base64-encoded SSH public key.

vanissh uses the maximum degree of parallelism to find your desired keypair as quickly as possible.

About Vanity Keys

A vanity SSH key is a keypair where the base64-encoded public key contains a specific substring of your choice. This makes your public key more recognizable and memorable, though it provides no additional security.

Performance Considerations

The time required to find a matching keypair grows exponentially with pattern length:

  • 5 characters (case-insensitive): ~10-60 seconds
  • 6 characters (case-insensitive): ~5-15 minutes
  • 5 characters (case-sensitive): ~5-30 minutes
  • 6 characters (case-sensitive): ~5-16 hours

Actual time depends on your CPU cores and generation speed (typically 60k-170k keys/sec per core).

Usage

Usage: vanissh [OPTIONS] <PATTERN>

Arguments:
  <PATTERN>
          The pattern to search for. On completion, vanissh will return an ed25519 SSH keypair, where pattern is a substring of the public key

Options:
  -c, --case-sensitive
          Whether to make the pattern search case-sensitive. Note, that this will exponentially increase the search time by a factor of 2 * `length_of(pattern)`

  -h, --help
          Print help (see a summary with '-h')

  -V, --version
          Print version

The resulting key pair is placed in a folder found-keys/, relative to the directory in which you executed vanissh.