Wie rufe ich den öffentlichen Schlüssel von einem privaten SSH-Schlüssel ab?


Zur akzeptierten Antwort gehen


Ein privater SSH-Schlüssel, wie er von generiert wird, ssh-keygen enthält einen öffentlichen Schlüsselteil. Wie rufe ich diesen öffentlichen Schlüssel vom privaten Schlüssel ab? Ich habe meinen öffentlichen Schlüssel verloren und muss den Inhalt dieses öffentlichen Schlüssels in die Serverdatei authorized_keys einfügen und möchte kein neues Schlüsselpaar erstellen.

Alternativ formuliert: Wie erstelle ich die id_rsa.pub Datei aus einer id_rsa Datei?


455





2011-07-18




Anzahl der Antworten: 2


Ich habe die Antwort auf Serverfehler gefunden: Einen öffentlichen SSH-Schlüssel aus dem privaten Schlüssel erstellen?

Die Option -y gibt den öffentlichen Schlüssel aus:

 ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
 

Als Randnotiz geht der Kommentar des öffentlichen Schlüssels verloren. Ich hatte eine Site, für die der Kommentar erforderlich war (Launchpad?). ~/.ssh/id_rsa.pub Daher müssen Sie einen Kommentar bearbeiten und an die erste Zeile anhängen, wobei zwischen dem Kommentar und den Schlüsseldaten ein Leerzeichen eingefügt wird. Ein Beispiel für einen öffentlichen Schlüssel ist unten abgeschnitten dargestellt.

 ssh-rsa AAAA..../VqDjtS5 [email protected]
 

Bei Schlüsseln, die dem SSH-Agenten hinzugefügt wurden (ein Programm, das im Hintergrund ausgeführt wird und das wiederholte Eingeben der Passphrase ssh-add -L für Schlüsseldateien überflüssig macht), können Sie mit dem Befehl die öffentlichen Schlüssel für Schlüssel auflisten , die hinzugefügt wurden der Agent (via ssh-add -l ). Dies ist nützlich, wenn der SSH-Schlüssel auf einer Smartcard gespeichert ist (und kein Zugriff auf die private Schlüsseldatei möglich ist).


695


2011-07-18

Dies ist eine Lösung speziell für Benutzer, die Windows verwenden, um SSH auf ihren Remotecomputern auszuführen, einschließlich Cloud-Images auf Amazon AWS und GCE.

(Haftungsausschluss)

Ich habe diese Lösung kürzlich verwendet, um mich per Fernzugriff bei neuen bereitgestellten VM-Images auf GCE anzumelden.


Benutztes Werkzeug:

  1. Kitt
  2. WinSCP

Durchzuführende Schritte:

  1. Generieren Sie mit puttygen ein öffentliches / privates Schlüsselpaar.
  2. Laden Sie einen öffentlichen Schlüssel auf Ihren Server in der Cloud oder an einem Remotestandort hoch.

Beschreibung (wie es geht):

  1. Generieren Sie einen Schlüssel / ein Paar oder verwenden Sie einen vorhandenen privaten Schlüssel:

    Wenn Sie einen privaten Schlüssel haben:

    Öffnen Sie puttygen, drücken Sie die Ladetaste und wählen Sie Ihre private Schlüsseldatei (* .pem) aus.

    Wenn Sie nicht einen privaten Schlüssel:

    • Offener Kitt,
    • Wählen Sie den gewünschten Schlüsseltyp SSH2 DSA (Sie können RSA oder DSA verwenden) im Abschnitt Parameter ... und lassen Sie das Feld für die Passphrase leer.
    • Drücken Sie auf "Erzeugen" und befolgen Sie die Anweisungen, um ein (öffentliches / privates) Schlüsselpaar zu erzeugen.


    Beispiel Key Generation Bild

  2. Erstellen Sie eine neue 'authorized_keys'-Datei (mit Notepad):

    Kopieren Sie Ihre öffentlichen Schlüsseldaten aus dem Abschnitt "Öffentlicher Schlüssel zum Einfügen in die OpenSSH-Datei" authorized_keys "des PuTTY-Schlüsselgenerators und fügen Sie die Schlüsseldaten in die Datei" authorized_keys "ein.

    Stellen Sie sicher, dass diese Datei nur eine Textzeile enthält.

  3. Laden Sie den Schlüssel auf einen Linux-Server hoch:

    • Öffnen Sie WinSCP,
    • Wählen Sie das SFTP-Dateiprotokoll aus und melden Sie sich mit Ihren SSH-Anmeldeinformationen an.
    • Bei Erfolg wird die Basisverzeichnisstruktur auf Ihrem Remotecomputer angezeigt.

    Laden Sie die Datei "authorized_keys" in das Ausgangsverzeichnis auf dem Remote-Computer hoch.

  4. Richtige Berechtigungen festlegen:

    Erstelle ein .ssh Verzeichnis (falls es nicht existiert)

    Kopieren Sie die authorized_keys Datei in das Verzeichnis .ssh (dies ersetzt alle vorhandenen authorized_keys Dateien; beachten Sie dies).

    Wenn die Datei vorhanden ist, fügen Sie einfach den Inhalt dieser Datei zur vorhandenen Datei hinzu.

    Führen Sie Befehle aus, um Berechtigungen festzulegen:

     sudo chmod 700 .ssh && chmod 600 .ssh/authorized_keys
     

Jetzt können Sie jederzeit ohne Eingabe von Anmeldeinformationen in einen Remote-Computer sshen.

Weitere Lektüre:

  1. Generieren und Hochladen von SSH-Schlüsseln unter Windows

  2. Authentifizierung ohne Passwort mit OpenSSH-Schlüssel, Zertifikaten .pem und .pub


14


2015-11-20