it-swarm.com.de

Konvertieren von mit PuTTYgen (Windows) generierten SSH-Schlüsselpaaren in Schlüsselpaare, die von ssh-agent und Keychain (Linux) verwendet werden

Ich habe mit PuTTYgen Schlüsselpaare generiert und mich mit Pageant angemeldet, sodass ich meine Passphrase nur einmal eingeben muss, wenn mein System hochfährt.

Wie erreiche ich das unter Linux? Ich habe von keychain gehört, aber ich habe gehört, dass es ein anderes Schlüsselpaarformat verwendet - Ich möchte meine Windows-Schlüssel nicht ändern und es wäre schön, wenn ich in Windows und in Windows eine nahtlose Verbindung auf die gleiche Weise herstellen könnte Linux.

439
TCSGrad

puttygen unterstützt das Exportieren Ihres privaten Schlüssels in ein OpenSSH-kompatibles Format. Anschließend können Sie mit OpenSSH-Tools den öffentlichen Schlüssel neu erstellen.

  1. Öffnen Sie PuttyGen
  2. Klicken Sie auf Laden
  3. Laden Sie Ihren privaten Schlüssel
  4. Gehen Sie zu Conversions->Export OpenSSH und exportieren Sie Ihren privaten Schlüssel
  5. Kopieren Sie Ihren privaten Schlüssel nach ~/.ssh/id_dsa (oder id_rsa).
  6. Erstellen Sie die RFC 4716-Version des öffentlichen Schlüssels mit ssh-keygen

    ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
    
  7. Konvertieren Sie die RFC 4716-Version des öffentlichen Schlüssels in das OpenSSH-Format:

    ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
    

Weitere Informationen finden Sie unter this und this .

676
Kaleb Pederson

Wenn Sie nur einen öffentlichen Schlüssel von einem Benutzer im PuTTY-Format haben, können Sie diesen wie folgt in das Standard-OpenSh-Format konvertieren:

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

Verweise

Kopie des Artikels

Ich vergesse das immer wieder, also werde ich es hier schreiben. Nicht-Geeks, geh einfach weiter.

Die gebräuchlichste Methode zum Erstellen eines Schlüssels unter Windows ist die Verwendung von PuTTY/Puttygen. Puttygen bietet ein nützliches Dienstprogramm zum Konvertieren eines privaten Linux-Schlüssels in das PuTTY-Format. Was jedoch nicht angesprochen wird, ist, dass wenn Sie den öffentlichen Schlüssel mit puttygen speichern, er auf einem Linux-Server nicht funktioniert. Windows legt einige Daten in verschiedenen Bereichen ab und fügt Zeilenumbrüche hinzu.

Die Lösung: Wenn Sie beim Erstellen Ihres Schlüsselpaars in puttygen zum Bildschirm "Öffentlicher Schlüssel" gelangen, kopieren Sie den öffentlichen Schlüssel und fügen Sie ihn in eine Textdatei mit der Erweiterung .pub ein. Sie sparen Ihrem Systemadministrator Stunden der Frustration, wenn Sie Beiträge wie diesen lesen.

JEDOCH, Sysadmins, erhalten Sie immer die Wonky-Schlüsseldatei, die keine Fehlermeldung im Authentifizierungsprotokoll auslöst, außer, dass kein Schlüssel gefunden wurde und ein Kennwort versucht wird. Auch wenn die Schlüssel aller anderen Benutzer einwandfrei funktionieren und Sie diesen Schlüssel 15 Mal an den Benutzer zurückgesendet haben.

ssh-keygen -i -f keyfile.pub > newkeyfile.pub

Sollte einen vorhandenen öffentlichen Schlüssel von puttygen in das OpenSSH-Format konvertieren.

148
bukzor

Neuere Versionen von PuTTYgen (meins ist 0.64) können den im Linux-System einzufügenden öffentlichen OpenSSH-Schlüssel in der Datei .ssh/authorized_keys anzeigen, wie in der folgenden Abbildung dargestellt:

enter image description here

138
Zac

Alternativ können Sie puttygen auf * nix-Systemen verwenden, wenn Sie den privaten und den öffentlichen Schlüssel aus einer PuTTY-formatierten Schlüsseldatei abrufen möchten. Für die meisten apt-basierten Systeme ist puttygen Teil des Pakets PuTTY-tools.

Ausgeben eines privaten Schlüssels aus einer mit PuTTY formatierten Schlüsseldatei:

$ puttygen keyfile.pem -O private-openssh -o avdev.pvk

Für den öffentlichen Schlüssel:

$ puttygen keyfile.pem -L

49
John Jawed
Sudo apt-get install PuTTY

Dadurch wird das Puttygen-Tool automatisch installiert.

Um nun die mit dem SSH-Befehl zu verwendende PPK-Datei zu konvertieren, führen Sie im Terminal die folgenden Schritte aus

puttygen mykey.ppk -O private-openssh -o my-openssh-key

Dann können Sie über SSH eine Verbindung herstellen mit:

ssh -v [email protected] -i my-openssh-key

http://www.graphicmist.in/use-your-PuTTY-ppk-file-to-ssh-remote-server-in-ubuntu/#comment-286

22
Purnendu Singh

Ich hatte kürzlich dieses Problem, als ich von PuTTY für Linux zu Remmina für Linux wechselte. Ich habe also eine Menge PPK-Dateien für PuTTY in meinem .PuTTY -Verzeichnis, da ich es seit 8 Jahren verwende. Dazu habe ich einen einfachen for -Befehl für die Bash-Shell verwendet, um alle Dateien zu erstellen:

cd ~/.PuTTY
for X in *.ppk; do puttygen $X -L > ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pub; puttygen $X -O private-openssh -o ~/.ssh/$(echo $X | sed 's,./,,' | sed 's/.ppk//g').pvk; done;

Sehr schnell und auf den Punkt gebracht, erledigte ich den Job für alle Dateien, die PuTTY hatte. Wenn ein Schlüssel mit einem Kennwort gefunden wird, wird er angehalten und zuerst nach dem Kennwort für diesen Schlüssel gefragt. Anschließend wird der Vorgang fortgesetzt.

14
jfreak53

Es ist wahrscheinlich einfacher, Ihre Schlüssel unter Linux zu erstellen und PuTTYgen zu verwenden, um die Schlüssel in das PuTTY-Format zu konvertieren.

PuTTY Faq: A.2.2

8
Bradley Kreider

Ich glaube, TCSgrad hat vor ein paar Jahren gefragt, wie Linux sich so verhält wie sein Windows-Rechner. Das heißt, es gibt einen Agenten (Festzug), der eine entschlüsselte Kopie eines privaten Schlüssels enthält, sodass die Passphrase nur einmal eingegeben werden muss. Anschließend kann sich der ssh-Client PuTTY auf Computern anmelden, auf denen sein öffentlicher Schlüssel ohne Kennwortabfrage als "autorisiert" aufgeführt ist.

Das Analoge dazu ist, dass Linux als SSH-Client fungiert und ein Agent einen entschlüsselten privaten Schlüssel besitzt, sodass TCSgrad beim Eingeben von "ssh Host" den Schlüssel "ssh Host" eingibt Der Befehl ssh ruft seinen privaten Schlüssel ab und fordert Sie nicht zur Eingabe eines Kennworts auf. Der Host muss natürlich den öffentlichen Schlüssel in ~/.ssh/authorized_keys haben.

Das Linux-Analog zu diesem Szenario wird mit ssh-agent (dem Festzug-Analog) und ssh-add (dem Analog zum Hinzufügen eines privaten Schlüssels zu pageant) ausgeführt.

Die Methode, die für mich funktionierte, war: $ ssh-agent $ Shell Diese $ Shell war der Zaubertrick, den ich brauchte, um den Agenten zum Laufen zu bringen und weiterzulaufen. Ich fand das irgendwo im Netz und es endete ein paar Stunden, als ich meinen Kopf gegen die Wand schlug.

Jetzt läuft das Analogon eines Festzuges, ein Agent ohne Schlüssel.

Wenn Sie $ ssh-add eingeben, werden (standardmäßig) die privaten Schlüssel hinzugefügt, die in den Standardidentitätsdateien in ~/.ssh aufgeführt sind.

Ein Webartikel mit viel mehr Details kann gefunden werden hier

6
kovacsbv