430 votes

Comment puis-je modifier la phrase de passe de ma clé privée ?

J'ai une paire de clés publique/privée existante. La clé privée est protégée par un mot de passe, et le cryptage peut être RSA ou DSA. Ces clés sont celles que vous générez avec ssh-keygen et généralement stockés sous ~/.ssh .

Je voudrais changer le mot de passe de la clé privée. Comment dois-je m'y prendre, sur un Shell Unix standard ?

De plus, comment puis-je simplement supprimer le mot de passe ? Il suffit de le changer en vide ?

578voto

Kim Points 1853

Pour modifier la phrase de passe de votre clé par défaut :

$ ssh-keygen -p

Si vous devez spécifier une clé, passez l'option -f option :

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

puis fournissez votre ancienne et votre nouvelle phrase de passe (deux fois) à l'invite. (Utilisez ~/.ssh/id_rsa si vous avez une clé RSA).

Plus de détails à partir de 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 votes

Ceci provient de la page de manuel fournie avec net-misc/openssh-5.2_p1-r2 sur Gentoo Linux.

0 votes

Ou, plus précisément, pour une clé DSA à emplacement par défaut, ssh-keygen -pf ~/.ssh/id_dsa

0 votes

J'aime fournir le fichier clé comme arg, pouvez-vous mettre à jour votre réponse pour refléter mes penchants fantaisistes afin que je puisse l'accepter sans réserve ? #pedanticwho

5voto

mivk Points 3226

Si vous n'avez pas ssh-keygen installé, vous pouvez également utiliser openssl directement

key="/path/to/your.key"
algo="-des3" # or -aes256 or ...

openssl rsa $algo -in "$key" -out "$key.new"

# and replace old key with new one
mv "$key.new" "$key"

-17voto

gauta Points 7

Supprimez vos clés publiques/privées SSH :

rm ~/.ssh/id_rsa*

Recréez la paire de clés, en choisissant une nouvelle phrase de passe :

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

Ajoutez la clé privée nouvellement créée à votre trousseau OS X pour stocker la phrase de passe et gérer son déverrouillage automatique :

ssh-add -K ~/.ssh/id_rsa

Copiez la clé publique dans le presse-papiers d'OS X pour l'ajouter à des services Web comme GitHub, etc.

cat ~/.ssh/id_rsa.pub | pbcopy

Ajoutez votre clé publique nouvellement créée au ~/.ssh/authorized_keys du serveur distant. Assurez-vous d'avoir les permissions correctes à la fois sur le serveur distant et sur l'ordinateur. ~/.ssh dossier (700) et ~/.ssh/authorized_keys (600). Vous pouvez envisager d'utiliser ssh-copy-id pour faciliter ce processus.

13 votes

Le posteur a demandé comment changer la phrase de passe de sa clé, et non pas la jeter et en générer une nouvelle ; et il n'a jamais mentionné OS X.

7 votes

J'aurais voté en faveur de cette réponse s'il n'y avait pas eu ces trois problèmes : 1. La suppression des anciennes clés n'est pas un bon début puisque vous en aurez besoin lors de la mise à jour. authorized_keys . 2. Vous n'avez pas mentionné pourquoi il vaut mieux créer de nouvelles clés que de changer les mots de passe sur les anciennes. 3. Vous faites des hypothèses sur l'OS, ce qui n'est pas soutenu par la question.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X