Come funziona il formato .pub ssh-keygen con i file .pem?


17

Il ssh-keygencomando genera .pubfile che descrive come "file di chiavi pubbliche", ma sono in un formato totalmente diverso dalla maggior parte dei "file di chiavi pubbliche" che ho visto di solito, che sono in formato PEM. I ssh-keygenfile in stile si presentano così:

ssh-rsa AAAAB3NzaC1... user@host

... mentre i file PEM si presentano così:

-----BEGIN CERTIFICATE-----
MIIGZjCCBU6gAwIBAgIDCIrNMA0GCSqGSIb3DQEBBQUAMIGMMQsw...
-----END CERTIFICATE-----

Questi due formati sono intercambiabili o svolgono uno scopo sostanzialmente diverso? Mi sono imbattuto in questo problema perché volevo ottenere l'impronta digitale della chiave RSA2 del mio file di chiave pubblica con codifica PEM, ma il metodo di solito suggeriva di farlo ( ssh-keygen -l) dice che il mio file con codifica PEM "non è un file di chiave pubblica".

A proposito, sono a conoscenza di questa risposta , ma non copre i file .pub generati da ssh-keygen.


1
Bene, una chiave pubblica SSH non è la stessa di un certificato in formato PEM. Hai visto questo? serverfault.com/questions/114301/…
cjc il

2
È importante essere particolari qui, che probabilmente stai guardando OpenSSH e non il meno comune SSH.COM o altre implementazioni. La chiave pubblica codificata PEM standard è in realtà valida per alcune implementazioni meno comuni. Conosco una scatola VMS a cui mi connetto richiede un file PEM.
Zoredache,

@cjc, giusto, non è un certificato, ma non è nemmeno lo stesso di quello che ottieni eseguendo openssl rsa -in privatekey_rsa -pubout, che in realtà è una chiave pubblica e non un certificato.
Zoredache,

Risposte:


8

Le coppie di chiavi OpenSSH non sono PEM o qualsiasi altro standard x500. Le nuove versioni di OpenSSH possono usare le chiavi PEM X.509, ma questa è un'altra sfera di cera separata da ssh-keygen e deve essere configurata in modo esplicito. Come meglio so, nessuna delle principali implementazioni di SSH utilizza gli stessi formati chiave esatti di tutti gli altri.

Come nota Zoredache , se stai usando qualcosa di diverso da OpenSSH (deus iuvo vos), allora potrebbe essere dannatamente vicino a qualsiasi cosa.


1
Sì, davvero, avevo confuso SSH e SSL! Il mio demone OpenSSH stava infatti utilizzando un .pubfile sul mio server, in /etc/ssh/ssh_host_rsa_key.pube non utilizzava alcuna architettura dell'autorità di certificazione SSL. Quando ho eseguito ssh-keygen -lquel file, mi ha dato l'impronta digitale della chiave RSA2 del server.
Jez,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.