GNU/Linux >> Linux Esercitazione >  >> Linux

Converti la chiave privata Openssh in una chiave privata Ssh2?

C'è un modo per convertire la coppia esistente di chiavi OpenSSH nella coppia di chiavi SSH2 (formato ssh.com)?

UPD :poiché ci sono alcune risposte su ssh-keygen è apparso all'improvviso, ti spiego da dove vengo (sarà anche una bella risposta su "cosa hai provato?").

$> diff --report-identical-files <(ssh-keygen -e -f ~/.ssh/id_dsa) <(ssh-keygen -e -f ~/.ssh/id_dsa.pub)
Files /tmp/zshAGGWAK and /tmp/zshPZiIr6 are identical

In altre parole, ssh-keygen restituisce le stesse chiavi per le chiavi di input private e pubbliche (gli hash dei file originali sono ovviamente diversi, li ho controllati due volte per assicurarmi che siano chiavi pubbliche e private valide). Sembra essere quel ssh-keygen genera solo la chiave pubblica per la chiave di input privata o pubblica.

Sbaglio o è un comportamento normale?

Risposta accettata:

Questo tutorial intitolato:SSH:Converti OpenSSH in SSH2 e viceversa sembra offrire ciò che stai cercando.

Convertire la chiave OpenSSH in chiave SSH2

Esegui la versione OpenSSH di ssh-keygen sulla tua chiave pubblica OpenSSH per convertirla nel formato richiesto da SSH2 sulla macchina remota. 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 nella chiave OpenSSH

Esegui la versione OpenSSH di ssh-keygen sulla 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 mostrando come generare i vari tipi di chiavi e come esportarli in altri formati.

Usare questo per chiavi private e pubbliche?

Secondo la pagina man, la risposta sarebbe sì. Guardando la pagina man di ssh-keygen afferma quanto segue per il -e interruttore:

 -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 riesco a convertire chiavi private, solo pubbliche.

Ad 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

Guardare le chiavi estratte risultanti conferma questo:

$ grep BEGIN newkey_e newkey.pub_e 
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----

Cercando un po' su Google mi sono imbattuto in questo blurb da un articolo intitolato:Come si convertono i file della chiave privata OpenSSH in SSH. Il sito sembrava essere su e giù, ma cercando nella cache di Google 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
dice che può farlo. 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 descrivendo un metodo per convertire una chiave privata openssh in una chiave privata ssh.com tramite l'uso di puttygen di PuTTY attrezzo. NOTA: puttygen può essere eseguito da Windows e Linux.

Apri "puttygen" e genera una coppia di chiavi pubbliche/private RSA a 2048 bit.
Assicurati di aggiungere una password dopo che è stata generata. Salva la chiave pubblica
come "puttystyle.pub" e salva la chiave privata come "puttystyle". Il
programma putty e i programmi SSH.com condividono un formato di chiave pubblica comune
ma il programma putty e OpenSSH hanno diversi formati di chiave pubblica.
Torneremo su questo più avanti. 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 conversioni
ed esporta una chiave openssh. Salvalo come "openssh". Questi nomi
sono arbitrari e puoi scegliere il tuo. In seguito dovrai modificare
i nomi per l'installazione su una macchina OpenSSH. Vedi sotto.

Dato quanto sopra ho elaborato quanto segue usando puttygen , utilizzando 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

I commenti sono diversi, quindi non puoi semplicemente confrontare i file risultanti, quindi se guardi le prime righe dei tasti, questo è un buon indicatore del successo dei comandi precedenti.

Correlati:Ubuntu - Come configurare indirizzi IP esterni per gli ospiti LXC?

Confronto delle chiavi ssh.com pubbliche:

$ 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 delle chiavi di openssh pubbliche:

$ cut -c 1-100 newkey.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY

$ cut -c 1-100 newkey.pub_puttygen-openssh 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY

Linux
  1. Come importare la chiave privata in FileZilla per SFTP

  2. Come convertire il file PPK in chiavi OpenSSH e accedere utilizzando SSH in Linux?

  3. Come inoltrare una chiave Ssh già inoltrata in Tmux?

  4. Condivisione di chiavi private tra macchine?

  5. Come eseguire SSH e SCP senza password da SSH2 a OpenSSH

Converti la tua installazione di Windows in una VM su Linux

Come convertire le immagini in formato ASCII in Linux

Come configurare la chiave pubblica e privata SSH in Linux

Convertire un collegamento fisico in un collegamento simbolico?

Accedi con una chiave privata SSH su Linux e macOS

Come convertire la chiave privata di PuTTY (.ppk) in chiave SSH