Come posso cambiare la passphrase della mia chiave privata?


284

Ho una coppia di chiavi pubblica / privata esistente. La chiave privata è protetta da password e la crittografia può essere RSA o DSA. Queste chiavi sono del tipo con cui generi ssh-keygene generalmente vengono archiviate ~/.ssh.

Vorrei cambiare la password della chiave privata. Come posso procedere, su una shell Unix standard?

Inoltre, come posso semplicemente rimuovere la password? Basta cambiarlo in vuoto?

Risposte:


372

Per modificare la passphrase sulla chiave DSA predefinita:

$ ssh-keygen -p -f ~/.ssh/id_dsa

quindi fornire la passphrase vecchia e nuova (due volte) alle istruzioni. (Utilizzare ~/.ssh/id_rsase si dispone di una chiave RSA.)

Maggiori dettagli da man ssh-keygen:

[...]
SYNOPSIS
    ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment]
               [-f output_keyfile]
    ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
[...]
     -f filename
             Specifies the filename of the key file.
[...]
     -N new_passphrase
             Provides the new passphrase.

     -P passphrase
             Provides the (old) passphrase.

     -p      Requests changing the passphrase of a private key file instead of
             creating a new private key.  The program will prompt for the file
             containing the private key, for the old passphrase, and twice for
             the new passphrase.
[...]

1
Questo è dalla pagina di manuale fornita con net-misc / openssh-5.2_p1-r2 su Gentoo Linux.
Mike Mazur,

12
Inoltre, per il futuro di una persona pigra, invertirei l'ordine: prima risposta rapida, prima pagina man.
kch,

2
Penso che la risposta sia ottima poiché mostra entrambi dove è possibile cambiare la password e dove cercare la risposta. Ho aiutato molte persone a configurare i tasti ssh, e per loro in realtà ricordare quale strumento hanno usato non è sempre facile. Inoltre, cercare la risposta su 'net è la prima opzione per molti ...
sastorsl

5
Se i tuoi computer usano OpenSSH> = 6.5, dovresti usare l' -oopzione per abilitare il nuovo formato di chiave privata (bcrypt come KDF di default). Con le versioni precedenti di OpenSSH, utilizzare PKCS # 8 per file di chiavi private più sicuri .
Quinn Comendant il

2
@FranciscoLuz il comando nella mia risposta è specifico di una chiave DSA. Se hai una chiave RSA, il tuo comando è corretto. Ho aggiunto una risposta alla risposta per risolvere questo problema.
Mike Mazur,

-9

Rimuovi le tue chiavi pubbliche / private SSH:

rm ~/.ssh/id_rsa*

Ricrea la coppia di chiavi, scegliendo una nuova passphrase:

ssh-keygen -t rsa -f ~/.ssh/id_rsa

Aggiungi la chiave privata appena creata al tuo portachiavi OS X per memorizzare la passphrase e gestirla sbloccandola automaticamente:

ssh-add -K ~/.ssh/id_rsa

Copia la chiave pubblica negli appunti di OS X per aggiungerla a servizi Web come GitHub, ecc.

cat ~/.ssh/id_rsa.pub | pbcopy

Aggiungi la tua chiave pubblica appena creata al ~/.ssh/authorized_keysfile del server remoto. Assicurarsi di garantire le autorizzazioni corrette per la ~/.sshcartella remota (700) e ~/.ssh/authorized_keys(600). Potresti voler investigare usando ssh-copy-idper facilitare questo processo.


3
Il poster ha chiesto come cambiare la passphrase sulla loro chiave, non buttarla via e generarne una nuova; e non hanno mai menzionato OS X.
musicinmybrain,

2
Avrei annullato questa risposta se non fosse stato per questi tre problemi: 1. L' eliminazione delle vecchie chiavi non è un buon inizio poiché ne avrai bisogno durante l'aggiornamento authorized_keys. 2. Non hai menzionato il motivo per cui creare nuove chiavi è meglio che cambiare le password su quelle vecchie. 3. Fai ipotesi sul sistema operativo, che non è supportato dalla domanda.
Kasperd,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.