Come convertire le coppie di chiavi SSH generate utilizzando PuTTYgen (Windows) in coppie di chiavi utilizzate da ssh-agent e Portachiavi (Linux)
Domanda
Ho generato coppie di chiavi utilizzando PuTTYgen e ho effettuato l'accesso utilizzando Pageant, quindi devo inserire la mia passphrase solo una volta all'avvio del sistema.
Come posso ottenere questo risultato in Linux?ne ho sentito parlare keychain
ma ho sentito che utilizza un diverso formato di coppia di chiavi: non voglio cambiare le mie chiavi Windows e sarebbe bello se potessi connettermi senza problemi allo stesso modo sia in Windows che in Linux.
Soluzione
puttygen
supporta l'esportazione della tua chiave privata in un formato compatibile con OpenSSH.È quindi possibile utilizzare gli strumenti OpenSSH per ricreare la chiave pubblica.
- Apri PuttyGen
- Fare clic su Carica
- Carica la tua chiave privata
- Vai a
Conversions->Export OpenSSH
ed esporta la tua chiave privata - Copia la tua chiave privata in
~/.ssh/id_dsa
(Oid_rsa
). Creare la versione RFC 4716 della chiave pubblica utilizzando
ssh-keygen
ssh-keygen -e -f ~/.ssh/id_dsa > ~/.ssh/id_dsa_com.pub
Converti la versione RFC 4716 della chiave pubblica nel formato OpenSSH:
ssh-keygen -i -f ~/.ssh/id_dsa_com.pub > ~/.ssh/id_dsa.pub
Altri suggerimenti
Se tutto ciò che hai è una chiave pubblica di un utente in formato stile PuTTY, puoi convertirla nel formato openssh standard in questo modo:
ssh-keygen -i -f keyfile.pub > newkeyfile.pub
Riferimenti
- Fonte:
http://www.treslervania.com/node/408 - Specchio: https://web.archive.org/web/20120414040727/http://www.treslervania.com/node/408.
Copia dell'articolo
Continuo a dimenticarlo, quindi lo scrivo qui.I non-geek, solo Continua a camminare.
Il modo più comune per creare una chiave su Windows è utilizzare Putty/Puttygen.Puttygen fornisce un'utilità ordinata per convertire una chiave privata linux in Formato stucco.Tuttavia, ciò che non viene risolto è che quando si salva il file Chiave pubblica utilizzando puttygen non funzionerà su un server Linux.Finestre Inserisce alcuni dati in aree diverse e aggiunge interruzioni di riga.
La soluzione:Quando si arriva alla schermata della chiave pubblica nella creazione del coppia di chiavi in puttygen, copiare la chiave pubblica e incollarla in un testo file con estensione .pub.Risparmierai ore di amministratore di sistema frustrazione nel leggere post come questo.
TUTTAVIA, amministratori di sistema, si ottiene invariabilmente il file chiave traballante che genera Nessun messaggio di errore nel registro di autenticazione, ad eccezione di nessuna chiave trovata, parola d’ordine;anche se le chiavi di tutti gli altri funzionano bene, e Questa chiave è stata restituita 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 per essere incollato nel sistema linux nel file .ssh/authorized_keys
, come mostrato nell'immagine seguente:
In alternativa, se si vuole afferrare le chiavi pubbliche e private da un file chiave PuTTY formattato è possibile utilizzare puttygen
su sistemi * nix. Per i sistemi più apt-basato puttygen
è parte del pacchetto putty-tools
.
L'output di una chiave privata da un file di chiavi PuTTY formattato:
$ 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 per essere utilizzato con il comando SSH eseguire il seguente nel terminale
puttygen mykey.ppk -O private-openssh -o my-openssh-key
Quindi, è possibile collegarsi tramite SSH con:
ssh -v user@example.com -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 come mi muovevo da mastice per Linux a Remmina per Linux. Così ho un sacco di file PPK per Putty nella mia directory .putty
come ho usato è per 8 anni. Per questo ho usato un semplice comando for
per shell bash di 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, ha ottenuto il lavoro fatto per tutti i file che stucco aveva. Se trova una chiave con una password si fermerà e chiederà la password per quella chiave prima e poi continuare.
Probabilmente è più semplice creare le chiavi in Linux e utilizzare PuTTYgen per convertire le chiavi nel formato PuTTY.
Credo che ciò che TCSgrad stava cercando di chiedere (a pochi anni fa) era quello di rendere Linux si comporti come la sua macchina di Windows fa. Cioè, c'è un agente (spettacolo), che contiene una copia decodificata di una chiave privata in modo che la passphrase ha solo bisogno di essere messo in una volta. Quindi, il client ssh, stucco, può accedere alle macchine dove la sua chiave pubblica è elencato come "autorizzato", senza una richiesta di password.
L'analogo di questo è che Linux, in qualità di un client ssh , ha un agente in possesso di un chiave privata decifrato in modo che quando tipi TCSgrad "host ssh" il comando ssh otterrà la sua chiave privata e andare senza essere richiesta una password. oste avrebbe, ovviamente, devono essere in possesso della chiave pubblica in ~ / .ssh / authorized_keys.
L'analogo Linux a questo scenario viene eseguita utilizzando ssh-agent (l'analogo corteo) e ssh-add (l'analogo per l'aggiunta di una chiave privata per Pageant).
Il metodo che ha funzionato per me è stato quello di utilizzare: $ Ssh-agent $ SHELL Che $ SHELL era il trucco magico avevo bisogno di fare la corsa agente e rimanere in esecuzione. Ho trovato che da qualche parte 'sulla rete ed è finito qualche ora di battere la testa contro il muro.
Ora abbiamo l'analogo di corsa spettacolo, un agente senza chiavi caricati.
Typing $ Ssh-add di per sé aggiungerà (per impostazione predefinita) le chiavi private elencati nei file di identità predefinite in ~ / .ssh.
Un articolo web con dettagli molto di più può essere trovato qui