Come faccio a recuperare la chiave pubblica da una chiave privata SSH?

365

Una chiave privata SSH generata da ssh-keygen contiene una parte chiave pubblica. Come posso recuperare questa chiave pubblica dalla chiave privata? Ho perso la mia chiave pubblica e ho bisogno di inserire il contenuto di questa chiave pubblica nel file authorized_keys dei server e non voglio creare una nuova coppia di chiavi.

In alternativa formulato: come posso creare il file id_rsa.pub da un file id_rsa ?

    
posta Lekensteyn 18.07.2011 - 11:57

2 risposte

564

Ho trovato la risposta su Server Fault: Crea una chiave SSH pubblica dalla chiave privata?

L'opzione -y restituisce la chiave pubblica:

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

Come nota a margine, il commento della chiave pubblica è perso. Ho avuto un sito che richiedeva il commento (Launchpad?), Quindi è necessario modificare ~/.ssh/id_rsa.pub e aggiungere un commento alla prima riga con uno spazio tra il commento e i dati chiave. Un esempio di chiave pubblica è mostrato troncato di seguito.

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

Per le chiavi che sono state aggiunte all'agente SSH (un programma che viene eseguito in background ed evita la necessità di reinserire la passphrase del file di chiavi più e più volte), è possibile utilizzare il comando ssh-add -L per elencare le chiavi pubbliche per le chiavi che sono state aggiunte all'agente (tramite ssh-add -l ). Ciò è utile quando la chiave SSH è memorizzata su una smart card (e l'accesso al file della chiave privata non è possibile).

    
risposta data Lekensteyn 18.07.2011 - 12:12
12

Questa è una soluzione specifica per gli utenti che utilizzano Windows su SSH nelle loro macchine remote, comprese le immagini cloud su Amazon AWS e GCE.

(di responsabilità)

Recentemente ho usato questa soluzione per accedere in remoto a nuove immagini VM distribuite su GCE.

Strumenti utilizzati:

  1. puttygen
  2. WinSCP

Passaggi da eseguire:

  1. Genera una coppia di chiavi pubblica / privata usando puttygen.
  2. Carica una chiave pubblica sul tuo server nel cloud o in una posizione remota.

Descrizione (come fare):

  1. Genera una chiave / coppia o usa una chiave privata esistente:

    Se hai una chiave privata:

    Apri puttygen, premi il pulsante di caricamento e seleziona il tuo file di chiave privata (* .pem).

    Se tu non hai una chiave privata:

    • Apri puttygen,
    • Seleziona il tipo di chiave desiderata SSH2 DSA (puoi usare RSA o DSA) nella sezione Parametri ... ed è importante lasciare vuoto il campo della passphrase,
    • Premi genera e segui le istruzioni per generare una coppia di chiavi (pubblica / privata).

  2. Crea un nuovo file 'authorized_keys' (con Blocco note):

    Copia i dati della tua chiave pubblica dalla sezione "Chiave pubblica per incollare nella OpenSSH authorized_keys file" del Generatore di chiavi PuTTY e incolla i dati della chiave nel file "authorized_keys".

    Assicurati che ci sia solo una riga di testo in questo file.

  3. Carica la chiave su un server Linux:

    • Apri WinSCP,
    • Seleziona il protocollo del file SFTP e accedi con le tue credenziali SSH.
    • In caso di successo, viene visualizzata la struttura della directory home sulla macchina remota.

    Carica il file authorized_keys nella directory home sulla macchina remota.

  4. Imposta le autorizzazioni appropriate:

    Crea una directory .ssh (se non esiste)

    Copia il file authorized_keys nella directory .ssh (questo sostituirà qualsiasi file authorized_keys esistente, prendi nota di questo).

    Se il file esiste, aggiungi semplicemente il contenuto di questo file al file esistente.

    Esegui comandi per impostare le autorizzazioni:

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

Ora potrai ssh su una macchina remota senza immettere credenziali ogni volta.

Ulteriori letture:

  1. Generazione e caricamento delle chiavi SSH sotto Windows

  2. Autenticazione senza password usando OpenSSH Chiave, certificati .pem e .pub

risposta data devprashant 20.11.2015 - 07:18

Leggi altre domande sui tag