Questo tutorial intitolato: SSH: Converti OpenSSH in SSH2 e viceversa sembra offrire ciò che stai cercando.
Converti chiave OpenSSH in chiave SSH2
Esegui la versione OpenSSH della ssh-keygen
tua chiave pubblica OpenSSH per convertirla nel formato richiesto da SSH2 sul computer remoto. Questo deve essere fatto sul sistema che esegue OpenSSH.
$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Convertire la chiave SSH2 in chiave OpenSSH
Esegui la versione OpenSSH della ssh-keygen
tua chiave pubblica ssh2 per convertirla nel formato richiesto da OpenSSH. Questo deve essere fatto sul sistema che esegue OpenSSH.
$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub
Il tutorial prosegue per mostrare come sia generare i vari tipi di chiavi sia come esportarli in altri formati.
Usalo per chiavi private e pubbliche?
Secondo la pagina man, la risposta sarebbe un sì. Guardando la pagina man per ssh-keygen
esso si afferma quanto segue per lo -e
switch:
-e This option will read a private or public OpenSSH key file and print
the key in RFC 4716 SSH Public Key File Format to stdout. This option
allows exporting keys for use by several commercial SSH implementations.
Ma in pratica sembrerebbe che ssh-keygen
non sia possibile convertire le chiavi private, ma solo quelle pubbliche.
Per esempio:
# Make a new RSA key-pair
$ ssh-keygen -t rsa -f newkey
# attempt to extract the private key
$ ssh-keygen -e -f newkey > newkey_e
# attempt to extract the public key
$ ssh-keygen -e -f newkey.pub > newkey.pub_e
# Notice the supposed extracted private key (newkey_e) and the corresponding extracted public key (newkey.pub_e) have identical `md5sum`'s.
$ for i in *;do md5sum $i;done
d1bd1c12c4a2b9fee4b5f8f83150cf1a newkey
8b67a7be646918afc7a041119e863be5 newkey_e
13947789d5dcc5322768bd8a2d3f562a newkey.pub
8b67a7be646918afc7a041119e863be5 newkey.pub_e
Osservando le chiavi estratte risultanti si conferma questo:
$ grep BEGIN newkey_e newkey.pub_e
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----
Googling un po 'mi sono imbattuto in questo frastuono da un articolo intitolato: Come si convertono i file della chiave privata OpenSSH in SSH . Il sito sembrava essere su e giù ma guardando nella cache di Google per questa pagina ho trovato il seguente blurb:
Come si convertono i file della chiave privata OpenSSH in file della chiave privata SSH.com?
Non può essere fatto dal programma ssh-keygen anche se la maggior parte delle pagine man lo dice. Lo scoraggiano in modo da utilizzare più chiavi pubbliche. L'unico problema è che RCF non ti consentirà di registrare più di una chiave pubblica.
L'articolo prosegue con un metodo per convertire una chiave privata di openssh in una chiave privata di ssh.com mediante l'uso dello strumento PuTTY puttygen
. NOTA: puttygen
può essere eseguito da Windows e Linux.
Apri 'puttygen' e genera una coppia di chiavi pubblica / privata a 2048 bit rsa. Assicurati di aggiungere una password dopo che è stata generata. Salvare la chiave pubblica come "puttystyle.pub" e salvare la chiave privata come "puttystyle". Il programma putty e i programmi SSH.com condividono un formato comune di chiave pubblica ma il programma putty e OpenSSH hanno diversi formati di chiave pubblica. Torneremo su questo, più tardi. Dovresti essere in grado di caricare entrambe le chiavi puttystyle nel programma putty. Tuttavia, i formati della chiave privata per putty e SSH.com non sono gli stessi e quindi dovrai creare un file convertito. Vai al menu delle conversioni ed esporta una chiave SSH.com. Salvalo come "sshstyle". Ora torna al menu delle conversioni ed esporta una chiave openssh. Salvalo come "openssh". Questi nomi sono arbitrari e puoi scegliere il tuo. Dovrai cambiare i nomi per l'installazione su una macchina OpenSSH, in seguito. Vedi sotto.
Alla luce di quanto sopra ho elaborato quanto segue usando puttygen
, usando la nostra coppia di chiavi openssh privata / pubblica precedentemente generata:
# generate ssh.com private key from private openssh key
$ puttygen newkey -O private-sshcom -o newkey.puttygen-sshcom
# generate ssh.com public key from private openssh key
$ puttygen newkey -O public -o newkey.pub_puttygen-sshcom
# generate openssh public key from private openssh key (for confirmation)
$ puttygen newkey -O public-openssh -o newkey.pub_puttygen-openssh
Il commento è diverso, quindi non puoi semplicemente confrontare i file risultanti, quindi se guardi le prime righe dei tasti, questo è un buon indicatore che i comandi sopra hanno avuto successo.
Confronto tra le chiavi pubbliche di ssh.com:
$ tail -n +3 newkey.pub_e | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb
$ tail -n +3 newkey.pub_puttygen-sshcom | head -1 | cut -c 1-60
AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wb
Confronto tra le chiavi pubbliche di openssh:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY