bitlvl
SR

Otisak i konvertor SSH ključeva

Nalepite sadržaj .pub datoteke ili PEM javni ključ. Dobijate otiske koje bi ssh-keygen ispisao, detalje ključa, drugi format i authorized_keys liniju sa ograničenjima koja izaberete.

authorized_keys linija

Rezultati i poruke ovog alata prikazuju se na engleskom.

Otisci

Otisak je heš bloba javnog ključa, dovoljno kratak da se uporedi okom. OpenSSH prikazuje SHA-256 u Base64 (SHA256:…) od verzije 6.8; stariji oblik MD5:xx:xx:… je ono što GitHub, AWS i stara dokumentacija još prikazuju za neke ključeve. Oba se ovde računaju iz istih bajtova koje ssh-keygen -lf key.pub hešira, pa se tačno poklapaju. Koristite ih da potvrdite da je ključ u authorized_keys onaj koji mislite, da uporedite upozorenje o host ključu sa serverskim ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub, i da identifikujete ključeve u konzolama cloud provajdera.

Tipovi ključeva

TipVeličinaOcena
ssh-ed25519256-bitniNajbolji izbor: mali, brz, nema mogućnosti greške u parametrima. Podržan od OpenSSH 6.5 (2014).
ssh-rsa2048–4096U redu sa SHA-2 potpisima (rsa-sha2-256/512, automatski u aktuelnom OpenSSH); 3072+ bita za nove ključeve. Ime tipa ključa je isto bez obzira na to da li se koriste SHA-1 ili SHA-2 potpisi.
ecdsa-sha2-nistp256/384/521256–521U redu, ali Ed25519 ima prednost; NIST krive zavise od dobre nasumičnosti u trenutku potpisivanja.
ssh-dss1024Zastareo; podrazumevano onemogućen od 7.0 i uklonjen u 9.8.
[email protected]256Ključ čuvan na FIDO2 bezbednosnom ključu (YubiKey); zahteva dodir pri svakoj upotrebi.

Formati

OpenSSH jednolinijski zapis je tip base64-blob komentar, gde je blob ime tipa i polja ključa kao stringovi sa prefiksom dužine. PEM PUBLIC KEY (SubjectPublicKeyInfo) je ono što traže OpenSSL, JWT biblioteke i većina softvera koji nije SSH. ssh-keygen -e -m PKCS8 -f key.pub konvertuje u jednom smeru, a ssh-keygen -i -m PKCS8 u drugom; ova stranica radi oba bez flagova.

Ograničavanje ključa

Opcije na početku authorized_keys linije ograničavaju šta ključ sme da radi: from= ograničava izvorne adrese, command= nameće jednu komandu (originalna je dostupna u $SSH_ORIGINAL_COMMAND), a restrict jednom rečju onemogućava prosleđivanje, PTY i agent. Ključ za backup treba da bude restrict,command="rrsync /backup"; deploy ključ ne treba da dozvoljava ništa osim deploy skripte.

Pitanja

Kako da dobijem svoj javni ključ?

cat ~/.ssh/id_ed25519.pub (ili id_rsa.pub). Ako imate samo privatni ključ: ssh-keygen -y -f ~/.ssh/id_ed25519 ispisuje javni deo. Nikada nigde ne lepite privatni ključ (datoteku bez .pub).

Zašto GitHub prikazuje drugačiji otisak?

GitHub prikazuje SHA256 otiske za ključeve dodate od 2018. i MD5 za starije. Uporedite odgovarajući format; oba su prikazana ovde. Proverite i da gledate istu datoteku ključa.

Kako da proverim otisak host ključa servera?

Na serveru: ssh-keygen -lf /etc/ssh/ssh_host_ed25519_key.pub. Uporedite sa onim što klijent ispisuje pri prvom povezivanju. Cloud provajderi ga prikazuju u konzoli ili serijskom logu; GitHub objavljuje svoje otiske u dokumentaciji.

Može li ovo da konvertuje privatni ključ?

Ne, namerno. Konverzija privatnog ključa pripada vašoj mašini: ssh-keygen -p -m PEM -f key (OpenSSH → PEM) ili ssh-keygen -p -m RFC4716. Ništa što ovde nalepite se nikuda ne šalje, ali privatni ključ uopšte ne bi trebalo da uđe u pregledač.