Vad är en SSH-publik nyckel?

En SSH-publik nyckel är ena halvan av ett kryptografiskt nyckelpar som används för säker autentisering via SSH-protokollet (Secure Shell). När du genererar ett SSH-nyckelpar får du en privat nyckel (som hålls hemlig på din dator) och en publik nyckel (som delas med servrar du vill ansluta till). Servern använder din publika nyckel för att verifiera din identitet utan att ett lösenord behöver överföras.

SSH-publika nycklar lagras som en enda textrad i OpenSSH-format och innehåller tre delar: nyckeltypen (t.ex. ssh-rsa eller ssh-ed25519), Base64-kodad nyckeldata och en valfri kommentar (vanligtvis user@hostname). Inbäddad i Base64-datan finns strukturerad binär information som inkluderar algoritmparametrar och det faktiska kryptografiska materialet.

Fingeravtryck är korta, läsbara hashar av nyckeldata. De gör det enkelt att verifiera och jämföra nycklar utan att behöva läsa hela Base64-strängen. De två vanligaste fingeravtrycksformaten är SHA-256 (den moderna standarden) och MD5 (det äldre formatet med kolon-separerade hexpar).

Verktygsbeskrivning

Det här verktyget tolkar SSH-publika nycklar i OpenSSH-format och extraherar all viktig metadata. Klistra in din publika nyckel och se omedelbart nyckeltyp, algoritm, nyckelstorlek i bitar, kommentar samt både SHA-256- och MD5-fingeravtryck — vilket matchar utdata från ssh-keygen -l.

Exempel

Indata:

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl user@laptop

Utdata:

Fält Värde
Nyckeltyp ssh-ed25519
Algoritm Ed25519
Nyckelstorlek 256 bitar
Kommentar user@laptop
Fingeravtryck SHA-256 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
Fingeravtryck MD5 MD5:16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48

Funktioner

  • Stöder RSA, Ed25519, ECDSA (P-256, P-384, P-521), DSA samt Security Key (FIDO)-nyckeltyper
  • Beräknar SHA-256- och MD5-fingeravtryck i standard OpenSSH-format
  • Extraherar nyckelstorlek i bitar direkt från binär nyckeldata
  • Validerar nyckelstrukturen inklusive Base64-integritet och konsistens hos den inbäddade typen
  • Tolkar det valfria kommentarsfältet från den publika nyckelraden

Så här fungerar det

Verktyget delar upp indata i tre delar: nyckeltyp, Base64-data och kommentar. Därefter avkodas Base64-datan till binär form och den interna strukturen läses med hjälp av SSH:s längdprefixerade format, där varje fält inleds med en 4-byte big-endian-längd följt av fältdata. Nyckelstorleken bestäms utifrån algoritmspecifika parametrar — för RSA är det bitlängden på modulen n, för DSA är det primtalet p, och för elliptiska kurvnycklar härleds den från kurvnamnet. Fingeravtryck beräknas genom att hasha den råa binära nyckeldata med SHA-256 respektive MD5.

Nyckeltyper som stöds

Typidentifierare Algoritm
ssh-rsa RSA
ssh-ed25519 Ed25519
ecdsa-sha2-nistp256 ECDSA (P-256)
ecdsa-sha2-nistp384 ECDSA (P-384)
ecdsa-sha2-nistp521 ECDSA (P-521)
ssh-dss DSA
sk-ssh-ed25519@openssh.com Ed25519-SK (Security Key)
sk-ecdsa-sha2-nistp256@openssh.com ECDSA-SK (Security Key)

Användningsområden

  • Verifiera nyckelfingeravtryck — Bekräfta att en publik nyckel matchar det förväntade fingeravtrycket innan du lägger till den i authorized_keys eller en Git-tjänst
  • Granska serveråtkomst — Identifiera snabbt algoritm och nyckelstorlek för nycklar i din authorized_keys-fil för att hitta svaga eller föråldrade nycklar
  • Felsöka SSH-problem — Kontrollera om en nyckel har rätt format, använder den förväntade algoritmen och har en giltig struktur

Vanliga frågor

Var hittar jag min SSH-publika nyckel? På de flesta system lagras den på ~/.ssh/id_ed25519.pub, ~/.ssh/id_rsa.pub eller en liknande sökväg beroende på algoritm. Du kan också köra ssh-add -L för att lista nycklar som är laddade i din SSH-agent.

Är det säkert att dela sin publika nyckel? Ja. Den publika nyckeln är avsedd att delas. Den kan inte användas för att härleda den privata nyckeln eller autentisera för din räkning.

Varför ser SHA-256- och MD5-fingeravtryck olika ut? SHA-256-fingeravtryck är Base64-kodade och prefixade med SHA256:, medan MD5-fingeravtryck använder kolon-separerade hexadecimala par prefixade med MD5:. SHA-256 är standard i moderna versioner av OpenSSH.