Ce tutoriel intitulé: SSH: Convertir OpenSSH en SSH2 et vice versa semble offrir ce que vous recherchez.
Convertir la clé OpenSSH en clé SSH2
Exécutez la version OpenSSH de ssh-keygen
votre clé publique OpenSSH pour la convertir au format requis par SSH2 sur la machine distante. Cela doit être fait sur le système exécutant OpenSSH.
$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Convertir la clé SSH2 en clé OpenSSH
Exécutez la version OpenSSH de ssh-keygen
votre clé publique ssh2 pour la convertir au format requis par OpenSSH. Cela doit être fait sur le système exécutant OpenSSH.
$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub
Le didacticiel montre ensuite comment générer à la fois les différents types de clés et comment les exporter vers d'autres formats.
L'utiliser pour les clés privées et publiques?
Selon la page de manuel, la réponse serait oui. La recherche dans la page de manuel ssh-keygen
indique ce qui suit pour le -e
commutateur:
-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.
Mais en pratique, il semblerait que ssh-keygen
vous ne pouvez pas convertir les clés privées, uniquement les clés publiques.
Par exemple:
# 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
L'examen des clés extraites résultantes le confirme:
$ grep BEGIN newkey_e newkey.pub_e
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----
Googler un peu Je suis tombé sur ce texte de présentation d'un article intitulé: Comment convertir les fichiers de clé privée OpenSSH en SSH . Le site semblait être de haut en bas, mais en regardant dans le cache de Google pour cette page, j'ai trouvé le texte de présentation suivant:
Comment convertir les fichiers de clé privée OpenSSH en fichiers de clé privée SSH.com?
Cela ne peut pas être fait par le programme ssh-keygen même si la plupart des pages de manuel le disent. Ils le découragent afin que vous utilisiez plusieurs clés publiques. Le seul problème est que RCF ne vous permettra pas d'enregistrer plus d'une clé publique.
L'article passe ensuite en revue une méthode de conversion d'une clé privée openssh en une clé privée ssh.com grâce à l'utilisation de l' puttygen
outil PuTTY . REMARQUE: puttygen
peut être exécuté à partir de Windows et Linux.
Ouvrez 'puttygen' et générez une paire de clés publique / privée rsa 2048 bits. Assurez-vous d'ajouter un mot de passe après sa génération. Enregistrez la clé publique sous "puttystyle.pub" et enregistrez la clé privée sous "puttystyle". Le programme putty et les programmes SSH.com partagent un format de clé publique commun, mais le programme putty et OpenSSH ont des formats de clé publique différents. Nous reviendrons à ceci plus tard. Vous devriez pouvoir charger les deux clés puttystyle dans le programme putty. Cependant, les formats de clé privée pour putty et SSH.com ne sont pas les mêmes et vous devrez donc créer un fichier converti. Accédez au menu des conversions et exportez une clé SSH.com. Enregistrez-le sous "sshstyle". Revenez maintenant au menu des conversions et exportez une clé openssh. Enregistrez-le sous "openssh". Ces noms sont arbitraires et vous pouvez choisir les vôtres. Vous devrez modifier les noms pour l'installation sur une machine OpenSSH, plus tard. Voir ci-dessous.
Compte tenu de ce qui précède, j'ai élaboré ce qui suit en puttygen
utilisant notre paire de clés openssh privée / publique précédemment générée:
# 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
Le commentaire est différent, vous ne pouvez donc pas simplement comparer les fichiers résultants, donc si vous regardez les premières lignes des touches, c'est un assez bon indicateur que les commandes ci-dessus ont réussi.
Comparaison des clés publiques 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
Comparaison des clés publiques opensh:
$ cut -c 1-100 newkey.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$ cut -c 1-100 newkey.pub_puttygen-openssh
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFkZdpmbze9c6pT883rE1i64TJd4wbz9x/w6I2DmSZVI9TJa6M9jgGE952QsOY
$> a="$(ssh-keygen -e -f ~/.ssh/id_rsa)m"; b="$(ssh-keygen -e -f ~/.ssh/id_rsa.pub)m"; md5sum <<< $a; md5sum <<< $b ce615aa3e39e274d0bd81064399cedf8 - ce615aa3e39e274d0bd81064399cedf8 -
. Les hachages des fichiers originaux sont différents, obv. Semble qu'il renvoie la clé publique pour la clé d'entrée privée ou publique.ssh-keygen
rendre les clés publiques. J'ai élaboré une méthode basée sur des recherches supplémentaires. LMK si c'est acceptable.puttygen <OpenSSH_priv_key> -O public -o id_rsa_ssh2_puttygen{.pub}
(-O
représente le type de sortie et le fichier de-o
sortie ). Cela génère des clés privées et publiques ssh2 à partir d'une clé privée rsa 2048 bits générée par OpenSSH 7.0. Ne fonctionne pas sur le client Win Phone 7.5 (* Le client SSH de Tommi Pirttiniemi). Mais merci à @ ДМИТРИЙМАЛИКОВ et @slm pour une excellente réponse de toute façon. @Otheus puttygen est livré avec Arch.putty
ssh-keygen
n'exportera pas une clé privée au format pem, mais il convertira une clé privée openssh existante au format pem, écrasant l'original. Il vous suffit de modifier le mot de passe.La commande pour convertir votre
~/.ssh/id_rsa
fichier du format OpenSSH au format SSH2 (pem) est:Fournissez ensuite la (ancienne) et la nouvelle phrase secrète à l'invite. Ils peuvent être identiques, ou même les deux être vides. Ou vous pouvez les fournir sur la ligne de commande en utilisant les options
-P
(ancienne phrase secrète) et-N
(nouvelle phrase secrète). Par exemple, si la phrase secrète est vide et que vous souhaitez la conserver de cette façon:la source