Come convertire i keypair SSH generati usando PuttyGen (Windows) in coppie di chiavi usate da ssh-agent e KeyChain (Linux)

Ho generato coppie di chiavi usando PuttyGen e PuttyGen usando Pageant , così devo inserire la mia pass-phrase solo una volta all’avvio del sistema.

Come posso ottenere questo in Linux? Ho sentito parlare di keychain ma ho sentito che utilizza un diverso formato di coppie di chiavi: non voglio cambiare i miei tasti di Windows e sarebbe bello se potessi connettermi senza problemi nello stesso modo sia in Windows che in Linux.

puttygen supporta l’esportazione della chiave privata in un formato compatibile OpenSSH. È quindi ansible utilizzare gli strumenti OpenSSH per ricreare la chiave pubblica.

  1. Apri PuttyGen
  2. Fai clic su Carica
  3. Carica la tua chiave privata
  4. Vai a Conversions->Export OpenSSH ed esporta la tua chiave privata
  5. Copia la tua chiave privata in ~/.ssh/id_dsa (o id_rsa ).
  6. Crea la versione RFC 4716 della chiave pubblica usando ssh-keygen

     ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub 
  7. Convertire la versione RFC 4716 della chiave pubblica nel formato OpenSSH:

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

Vedi questo e questo per ulteriori informazioni.

Se tutto ciò che hai è una chiave pubblica da un utente in formato stile PuTTY, puoi convertirlo in formato standard openssh in questo modo:

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

Riferimenti

Copia dell’articolo

Continuo a dimenticarlo, quindi lo scrivo qui. Non geek, continua a camminare.

Il modo più comune per creare una chiave su Windows è usare Putty / Puttygen. Puttygen fornisce un’utilità utile per convertire una chiave privata Linux in formato Putty. Tuttavia, ciò che non viene affrontato è che quando si salva la chiave pubblica usando puttygen non funzionerà su un server linux. Windows inserisce alcuni dati in aree diverse e aggiunge interruzioni di riga.

La soluzione: quando si arriva alla schermata della chiave pubblica durante la creazione della coppia di chiavi in ​​puttygen, copiare la chiave pubblica e incollarla in un file di testo con estensione .pub. Ti risparmierai ore di frustrazione leggendo post come questo.

TUTTAVIA, amministratori di sistema, si ottiene invariabilmente il file di chiavi che non genera alcun messaggio di errore nel registro di autenticazione, tranne che non è stata trovata alcuna chiave, ma ha provato la password; anche se le chiavi di tutti gli altri funzionano bene, e hai inviato questa chiave all’utente 15 volte.

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

Dovrebbe convertire una chiave pubblica puttygen esistente nel formato OpenSSH.

Le versioni più recenti di PuTTYgen (il mio è 0.64) sono in grado di mostrare la chiave pubblica OpenSSH da incollare nel sistema linux nel file .ssh/authorized_keys , come mostrato nell’immagine seguente:

inserisci la descrizione dell'immagine qui

In alternativa, se vuoi prendere le chiavi private e pubbliche da un file chiave formattato PuTTY puoi usare puttygen su sistemi * nix. Per la maggior parte dei sistemi basati su apt, puttygen fa parte del pacchetto putty-tools .

Emissione di una chiave privata da un file chiave formattato PuTTY:

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

Per la chiave pubblica:

$ puttygen keyfile.pem -L

 sudo apt-get install putty 

Questo installerà automaticamente lo strumento puttygen.

Ora per convertire il file PPK da utilizzare con il comando SSH eseguire il seguente nel terminale

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

Quindi, puoi connetterti tramite SSH con:

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

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

Recentemente ho avuto questo problema mentre mi stavo spostando da Putty per Linux a Remmina per Linux. Quindi ho un sacco di file PPK per Putty nella mia directory .putty dato che li uso da 8 anni. Per questo ho usato un semplice comando per bash shell per fare tutti i file:

 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; 

Molto veloce e al punto, ho fatto il lavoro per tutti i file che aveva stucco. Se trova una chiave con una password, si interromperà e chiederà prima la password per quella chiave e poi continuerà.

Probabilmente è più facile creare le tue chiavi sotto linux e usare PuTTYgen per convertire le chiavi in ​​formato PuTTY.

PuTTY Faq: A.2.2

Penso che quello che TCSgrad stava cercando di chiedere (alcuni anni fa) era come fare in modo che Linux si comportasse come fa il suo computer Windows. Cioè, c’è un agente (pageant) che contiene una copia decrittografata di una chiave privata in modo che la passphrase debba essere inserita una sola volta. Quindi, il client ssh, putty, può accedere alle macchine in cui la sua chiave pubblica è elencata come “autorizzata” senza una richiesta di password.

L’analogo per questo è che Linux, agendo come client ssh , ha un agente che detiene una chiave privata decifrata in modo che quando TCSgrad digita “host ssh” il comando ssh ottenga la sua chiave privata e vada senza che venga richiesta una password. l’host, naturalmente, deve tenere la chiave pubblica in ~ / .ssh / authorized_keys.

L’analogo Linux a questo scenario è realizzato usando ssh-agent (l’analizzatore di pageant) e ssh-add (l’analogo all’aggiunta di una chiave privata per lo spettacolo).

Il metodo che ha funzionato per me era l’uso di: $ ssh-agent $ SHELL Quel $ SHELL era il trucco magico di cui avevo bisogno per far funzionare l’agente e rimanere in esecuzione. L’ho trovato da qualche parte sulla rete e si è conclusa poche ore prima di picchiare la testa contro il muro.

Ora abbiamo l’analogo del pageant in esecuzione, un agente senza chiavi caricate.

Digitando $ ssh-add da solo si aggiungeranno (di default) le chiavi private elencate nei file di id quadro predefiniti in ~ / .ssh.

Un articolo web con molti più dettagli può essere trovato qui