Check an SSH public key
Paste the one-line contents of a .pub file. You get the algorithm, the real key size, the SHA256 fingerprint as ssh-keygen -lf would print it, and a grade with a reason for it.
Public keys are meant to be published — that is the whole idea. This page still processes yours in the browser, because a tool that asks you to paste key material and then sends it somewhere has taught you a bad habit.
Paste or drop the key
The key is read in this tab. The fingerprint is computed by the browser's own WebCrypto, not by a server. After loading, this page makes no network request at all, and it carries no analytics.
Result
—
If you decide to reissue
ssh-keygen -t ed25519 -C "you@example.com"
Copied.
How the grades are decided
- A — Ed25519, Ed25519 on a hardware security key, ECDSA on P-384 or P-521, RSA of 3072 bits or more.
- B — RSA-2048, ECDSA on P-256. Acceptable today, with no margin left for tomorrow.
- C — RSA between 1024 and 2047 bits. Below the current floor; some servers already refuse it.
- D — anything shorter, and DSA at any size. OpenSSH removed DSA entirely in 10.0.
The size is read out of the key itself rather than guessed from the type: for RSA the modulus is measured bit by bit, ignoring the leading zero byte that the wire format adds when the top bit is set. That is why the number here matches ssh-keygen -lf and not a rounded guess.
What a truncated key looks like
An SSH key body is a run of length-prefixed fields. That structure is self-consistent, which means a key cut short in the middle often still parses — the first field says ssh-ed25519, the lengths add up, and nothing complains.
An early version of this page graded exactly such a fragment as an A. It now checks the field layout against the type: Ed25519 needs its 32 bytes of public part, RSA needs an exponent and a non-empty modulus, ECDSA needs a curve name and a point. A key missing them is reported as incomplete rather than scored.
Questions people actually ask
Is my key sent to a server?
No. The key is parsed in your browser and the fingerprint is computed with the browser's own WebCrypto. The page makes no network request after it loads and carries no analytics, so there is nothing to argue about — open the network tab and paste a key.
Is ed25519 better than RSA?
For SSH, yes, in the ways that matter. An Ed25519 key is 68 characters where RSA-4096 is around 730, signing and verifying are faster, and the implementation is constant-time by construction rather than by care. RSA-3072 and above is still perfectly sound; RSA-2048 is the minimum and shrinking.
What is xchacha20?
A stream cipher with a 192-bit nonce, used with Poly1305 for authentication. It is not an SSH key type — it is what Conchshell seals its credential vault with, keyed by Argon2id. In SSH itself you meet its close relative chacha20-poly1305, which is the default transport cipher in OpenSSH.
What can you tell from a public key?
The algorithm, the key size, whether it is backed by a hardware security key, the comment the owner left on it, and the SHA256 fingerprint that identifies it. Nothing about the private half, and nothing that helps anyone use the key.
Why does the fingerprint match ssh-keygen exactly?
Because it is computed the same way: SHA-256 over the decoded key body, base64 with the padding stripped, prefixed with SHA256:. That equality is how this tool is tested — five real key types generated by ssh-keygen, with the bit counts and fingerprints compared against its own output.
What happens if I paste a private key by mistake?
It is not processed. The text is checked for private-key markers before anything else runs, a warning appears, and the field is cleared when you click away so the key does not linger in the page or in form restoration.
Where this comes from
Conchshell prefers Ed25519 host keys and negotiates curve25519-sha256, and it keeps your credentials in a vault sealed with XChaCha20-Poly1305 under an Argon2id key. Your private keys stay where they are on disk — the application points at the file rather than copying it into itself.
Worth knowing before you decide: it authenticates with a password, a private key, or an encrypted key with a passphrase, and nothing else. If your setup depends on a separate agent process holding keys, that will not carry over.
Read next
- Check your ~/.ssh/config — ciphers, MACs, key exchange and host-key settings
- What these clients weigh — measured install size and memory, with the method
- How the credential vault is built
- Conchshell: SSH, SFTP, FTPS and RDP in one window
- Download