516 Stimmen

Konvertierung von SSH-Schlüsselpaaren, die mit PuTTYgen (Windows) erzeugt wurden, in von ssh-agent und Keychain (Linux) verwendete Schlüsselpaare

Ich habe mit PuTTYgen Schlüsselpaare erzeugt und mich mit Pageant angemeldet, so dass ich meine Passphrase nur einmal beim Systemstart eingeben muss.

Wie kann ich dies unter Linux erreichen? Ich habe gehört, dass keychain 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 sowohl unter Windows als auch unter Linux nahtlos dieselbe Verbindung herstellen könnte.

15voto

jfreak53 Punkte 2098

Ich hatte kürzlich dieses Problem, als ich von Putty für Linux auf Remmina für Linux umstieg. Ich habe also eine Menge PPK-Dateien für Putty in meinem .putty Verzeichnis, da ich es seit 8 Jahren benutze. Hierfür habe ich ein einfaches for Befehl für die Bash-Shell, um alle Dateien zu bearbeiten:

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, hat die Arbeit für alle Dateien, die putty hatte, erledigt. Wenn es einen Schlüssel mit einem Passwort findet, hält es an und fragt zuerst nach dem Passwort für diesen Schlüssel und fährt dann fort.

9voto

Bradley Kreider Punkte 1087

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

6voto

kovacsbv Punkte 319

Ich glaube, TCSgrad wollte (vor ein paar Jahren) wissen, wie man Linux dazu bringt, sich so zu verhalten wie sein Windows-Rechner. Das heißt, es gibt einen Agenten (pageant), der eine entschlüsselte Kopie eines privaten Schlüssels enthält, so dass die Passphrase nur einmal eingegeben werden muss. Dann kann sich der ssh-Client putty bei Rechnern anmelden, bei denen sein öffentlicher Schlüssel als "autorisiert" aufgeführt ist, ohne dass eine Passwortabfrage erfolgt.

Das Analogon dazu ist, dass Linux, als ssh-Client fungieren hat einen Agenten, der einen entschlüsselten privaten Schlüssel hält, so dass, wenn TCSgrad "ssh host" eintippt, der ssh-Befehl seinen privaten Schlüssel erhält und loslegen kann, ohne nach einem Passwort gefragt zu werden. host müsste natürlich den öffentlichen Schlüssel in ~/.ssh/authorized_keys halten.

Das Linux-Analogon zu diesem Szenario wird mit ssh-agent (dem Pageant-Analogon) und ssh-add (dem Analogon zum Hinzufügen eines privaten Schlüssels zu Pageant) erreicht.

Die Methode, die bei mir funktioniert hat, war die Verwendung von: $ ssh-agent $SHELL Dieses $SHELL war der Zaubertrick, den ich brauchte, um den Agenten zum Laufen zu bringen und am Laufen zu halten. Ich habe das irgendwo im Internet gefunden und es beendete ein paar Stunden, in denen ich den Kopf gegen die Wand geschlagen habe.

Jetzt haben wir das Analogon des Festumzugs, einen Agenten, der keine Schlüssel geladen hat.

Tippen $ ssh-add eintippt, werden (standardmäßig) die privaten Schlüssel hinzugefügt, die in den Standard-Identitätsdateien in ~/.ssh aufgeführt sind.

Einen Webartikel mit vielen weiteren Details finden Sie unter aquí

1voto

Uriy MerkUriy Punkte 81

PPK OpenSSH RSA mit PuttyGen & Docker.

Privater Schlüssel:

docker run --rm -v $(pwd):/app zinuzoid/puttygen private.ppk -O private-openssh -o my-openssh-key

Öffentlicher Schlüssel:

docker run --rm -v $(pwd):/app zinuzoid/puttygen private.ppk -L -o my-openssh-key.pub

Siehe auch https://hub.docker.com/r/zinuzoid/puttygen

-2voto

Ted Phillips Punkte 171

Noch schneller als das erneute Öffnen von puttygen ist, was ich oft gemacht habe:

  1. Duplizieren Sie die Datei mit dem öffentlichen Schlüssel.
  2. Setzen Sie in der Kopie das Wort "ssh-rsa" an den Anfang.
  3. Entfernen Sie die Kommentarzeilen am Anfang und am Ende sowie alle anderen Zeilenumbrüche.
  4. Speichern. Das Ergebnis ist ein einzeiliger Schlüssel, der für openssh funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X