Verifying a server host key before accepting it
The prompt on first SSH connection asks you to confirm a fingerprint. Comparing it against the value your provider published out-of-band is the only step that prevents a machine-in-the-middle.
Computes the fingerprint of an OpenSSH public key.
Computes the fingerprint of an OpenSSH public key.
ssh-rsa AAAAB3NzaC1yc2E...
SHA256:j3f9a...
The fingerprint is a hash of the key material.
Matching fingerprints mean the same key material.
Your input is sent to YAS infrastructure because the tool requires server-side processing or public network queries. Input is not stored.
curl -X POST "https://yas.sh/api/v1/tools/ssh-key-fingerprint" \
-H "Content-Type: application/json" \
-d '{"key":"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK3eyDY2BNmjqbvypHC8t9Pj99+8QZoE75QHMh4vYfku yas-example"}'const res = await fetch("https://yas.sh/api/v1/tools/ssh-key-fingerprint", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"key": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK3eyDY2BNmjqbvypHC8t9Pj99+8QZoE75QHMh4vYfku yas-example"
}),
});
const data = await res.json();import requests
r = requests.post("https://yas.sh/api/v1/tools/ssh-key-fingerprint", json={"key":"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIK3eyDY2BNmjqbvypHC8t9Pj99+8QZoE75QHMh4vYfku yas-example"})
data = r.json()| Field | Type | Required | Description |
|---|---|---|---|
| key | string | Yes | OpenSSH public key (ssh-rsa AAAA...) |
{ "type": "ssh-ed25519", "bits": 256, "fingerprint": { "sha256": "SHA256:...", "sha1": "..." }, "comment": "yas-example" }Show type, bits and SHA256/SHA1 fingerprint of an OpenSSH public key.
400 VALIDATION_ERROR — invalid input or unsupported option.413 PAYLOAD_TOO_LARGE — input exceeds the 64 KB limit.429 RATE_LIMIT_EXCEEDED — rate limit exceeded (60 req/min).An OpenSSH public key line contains a key type, a base64-encoded blob and an optional comment. The blob is a length-prefixed wire encoding of the key's algorithm identifier and its public parameters. The fingerprint is a hash of that blob — modern OpenSSH shows base64-encoded SHA-256 (SHA256:...), while older tooling shows colon-separated hex MD5, which is why the same key appears to have two different fingerprints.
The fingerprint's job is to make a long key comparable by a human. Verifying a host key on first connection, or confirming that the key you just uploaded is the one you hold locally, means comparing a 43-character string rather than a 700-character blob. It is a comparison aid, not a secret.
The prompt on first SSH connection asks you to confirm a fingerprint. Comparing it against the value your provider published out-of-band is the only step that prevents a machine-in-the-middle.
GitHub, GitLab and cloud consoles list fingerprints, not keys. Fingerprinting your local public keys tells you which entry corresponds to which file.
Fingerprinting every line turns an unreadable file into a list you can reconcile against a roster of people who should still have access.
Keys pasted through chat clients get line-wrapped or truncated. Matching fingerprints proves the copy is intact.
What this tool deliberately does not do, and where it will disagree with other implementations.