Dieses Tutorial mit dem Titel: SSH: Konvertieren von OpenSSH in SSH2 und umgekehrt scheint das zu bieten, wonach Sie suchen.
Konvertieren Sie den OpenSSH-Schlüssel in den SSH2-Schlüssel
Führen Sie die OpenSSH-Version von ssh-keygen
auf Ihrem öffentlichen OpenSSH-Schlüssel aus, um sie in das von SSH2 auf dem Remote-Computer benötigte Format zu konvertieren. Dies muss auf dem System erfolgen, auf dem OpenSSH ausgeführt wird.
$ ssh-keygen -e -f ~/.ssh/id_dsa.pub > ~/.ssh/id_dsa_ssh2.pub
Konvertieren Sie den SSH2-Schlüssel in den OpenSSH-Schlüssel
Führen Sie die OpenSSH-Version von ssh-keygen
auf Ihrem öffentlichen ssh2-Schlüssel aus, um ihn in das von OpenSSH benötigte Format zu konvertieren. Dies muss auf dem System erfolgen, auf dem OpenSSH ausgeführt wird.
$ ssh-keygen -i -f ~/.ssh/id_dsa_1024_a.pub > ~/.ssh/id_dsa_1024_a_openssh.pub
In diesem Tutorial wird gezeigt, wie die verschiedenen Schlüsseltypen generiert und in andere Formate exportiert werden.
Verwenden Sie dies für private und öffentliche Schlüssel?
Laut der Manpage wäre die Antwort ein Ja. Wenn Sie sich die Manpage ansehen ssh-keygen
, heißt es für den -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.
In der Praxis scheint es ssh-keygen
jedoch nicht möglich zu sein, private Schlüssel zu konvertieren , sondern nur öffentliche.
Beispielsweise:
# 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
Ein Blick auf die resultierenden extrahierten Schlüssel bestätigt dies:
$ grep BEGIN newkey_e newkey.pub_e
newkey_e:---- BEGIN SSH2 PUBLIC KEY ----
newkey.pub_e:---- BEGIN SSH2 PUBLIC KEY ----
Ich kam aus einem Artikel über diesen Klappentext des Titel ein wenig Googeln: Wie wollen Sie OpenSSH private Schlüsseldateien zu SSH konvertieren . Die Seite schien auf und ab zu sein, aber als ich im Google-Cache nach dieser Seite suchte, fand ich den folgenden Klappentext:
Wie konvertiert man OpenSSH Private Key-Dateien in SSH.com Private Key-Dateien?
Dies kann mit dem Programm ssh-keygen nicht durchgeführt werden, obwohl die meisten Manpages dies für möglich halten. Sie raten davon ab, sodass Sie mehrere öffentliche Schlüssel verwenden. Das einzige Problem ist, dass Sie mit RCF nicht mehr als einen öffentlichen Schlüssel registrieren können.
Der Artikel befasst sich mit einer Methode zum Konvertieren eines privaten OpenSh-Schlüssels in einen privaten SSH.com-Schlüssel mithilfe des PuTTY- puttygen
Tools. HINWEIS: puttygen
Kann unter Windows und Linux ausgeführt werden.
Öffnen Sie 'puttygen' und generieren Sie ein öffentliches / privates 2048-Bit-RSA-Schlüsselpaar. Stellen Sie sicher, dass Sie ein Kennwort hinzufügen, nachdem es generiert wurde. Speichern Sie den öffentlichen Schlüssel als "puttystyle.pub" und den privaten Schlüssel als "puttystyle". Das Putty-Programm und SSH.com-Programme haben ein gemeinsames Public-Key-Format, aber das Putty-Programm und OpenSSH haben unterschiedliche Public-Key-Formate. Wir werden später darauf zurückkommen. Sie sollten beide Puttystyle-Keys in das Putty-Programm laden können. Die privaten Schlüsselformate für putty und SSH.com sind jedoch nicht identisch, sodass Sie eine konvertierte Datei erstellen müssen. Gehen Sie zum Konvertierungsmenü und exportieren Sie einen SSH.com-Schlüssel. Speichere es als "sshstyle". Kehren Sie nun zum Konvertierungsmenü zurück und exportieren Sie einen openssh-Schlüssel. Speichern Sie es als "openssh". Diese Namen sind willkürlich und Sie können Ihre eigenen wählen. Sie müssen die Namen für die Installation auf einem OpenSSH-Computer später ändern. Siehe unten.
Angesichts des oben puttygen
Gesagten habe ich mit unserem zuvor generierten Schlüsselpaar private / public openssh Folgendes herausgefunden:
# 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
Die Kommentare sind unterschiedlich, sodass Sie die resultierenden Dateien nicht einfach vergleichen können. Wenn Sie sich also die ersten Zeilen der Tasten ansehen, ist dies ein ziemlich guter Indikator dafür, dass die obigen Befehle erfolgreich waren.
Vergleich der öffentlichen ssh.com-Schlüssel:
$ 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
Vergleich der öffentlichen OpenSh-Schlüssel:
$ 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 -
. Hashes von Originaldateien sind unterschiedlich, siehe oben. Scheint, dass es öffentlichen Schlüssel für privaten oder öffentlichen Eingabeschlüssel zurückgibt.ssh-keygen
dass Sie öffentliche Schlüssel zurückgeben. Ich habe eine Methode ausgearbeitet, die auf zusätzlichen Recherchen basiert. LMK, wenn es akzeptabel ist.puttygen <OpenSSH_priv_key> -O public -o id_rsa_ssh2_puttygen{.pub}
(-O
steht für output- type und-o
für output- file ). Das erzeugt ssh2 privaten und öffentlichen Schlüssel von einem OpenSSH 7.0 erzeugt rsa 2048 Bit private Schlüsseln. Funktioniert nicht auf Win Phone 7.5-Client (* Der SSH-Client von Tommi Pirttiniemi). Aber trotzdem vielen Dank an @ ДМИТРИЙМАЛИКОВ und @slm für eine großartige Antwort. @ Theus Puttygen kommt mitputty
auf Arch.ssh-keygen
exportiert keinen privaten Schlüssel im PEM-Format, konvertiert jedoch einen vorhandenen OpenSSH-privaten Schlüssel in das PEM-Format und überschreibt das Original. Sie müssen lediglich das Passwort bearbeiten.Der Befehl zum Konvertieren Ihrer
~/.ssh/id_rsa
Datei vom OpenSSH-Format in das SSH2-Format (pem) lautet:Geben Sie dann an der Eingabeaufforderung die (alte) und die neue Passphrase ein. Sie können gleich oder auch beide leer sein. Sie können sie auch über die Befehlszeile mit den Optionen
-P
(alte Passphrase) und-N
(neue Passphrase) eingeben. Wenn zum Beispiel die Passphrase leer ist und Sie möchten, dass dies so bleibt:quelle