Comment puis-je supprimer le mot de passe pour la clé SSH sans avoir à créer une nouvelle clé?
-
02-07-2019 - |
Question
J'ai défini un mot de passe lors de la création d'une nouvelle clé SSH sur mon ordinateur portable. Mais, comme je le sais maintenant, c’est très pénible lorsque vous essayez de vous engager ( Git et SVN ) vers un emplacement distant plusieurs fois par heure sur SSH.
Une des façons dont je peux penser est de supprimer mes clés SSH et d’en créer de nouvelles. Existe-t-il un moyen de supprimer la phrase secrète tout en conservant les mêmes clés?
La solution
Réponse courte:
$ ssh-keygen -p
Ceci vous invitera ensuite à entrer l'emplacement du fichier de clés, l'ancienne phrase secrète et la nouvelle phrase secrète (qui peuvent être laissés vides pour ne pas avoir de phrase secrète).
Si vous souhaitez tout faire sur une seule ligne sans invite, faites:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Important: Notez que lors de l'exécution des commandes, elles seront généralement consignées dans votre fichier ~ / .bash_history
(ou similaire) en texte brut, y compris tous les arguments fournis (c'est-à-dire mots de passe dans ce cas). Il est donc recommandé d’utiliser la première option à moins que vous n’ayez une raison spécifique de faire autrement. Notez cependant que vous pouvez toujours utiliser -f fichier_fichier
sans avoir à spécifier -P
ni -N
, et que le fichier de clés est par défaut . ~ / .ssh / id_rsa
, dans de nombreux cas, cela n'est même pas nécessaire.
Vous pouvez envisager d'utiliser ssh-agent, qui peut mettre la phrase secrète en mémoire cache pendant un certain temps. Les dernières versions de gpg-agent prennent également en charge le protocole utilisé par ssh-agent.
Autres conseils
Vous voudrez peut-être ajouter les éléments suivants à votre .bash_profile (ou équivalent), qui démarre ssh-agent lors de la connexion.
if [ -f ~/.agent.env ] ; then
. ~/.agent.env > /dev/null
if ! kill -0 $SSH_AGENT_PID > /dev/null 2>&1; then
echo "Stale agent file found. Spawning new agent… "
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
else
echo "Starting ssh-agent"
eval `ssh-agent | tee ~/.agent.env`
ssh-add
fi
Sur certaines distributions Linux (Ubuntu, Debian), vous pouvez utiliser:
ssh-copy-id -i ~/.ssh/id_dsa.pub username@host
Ceci copiera l’ID généré sur un ordinateur distant et l’ajoutera au trousseau.
$ ssh-keygen -p
a travaillé pour moi
ouvert git bash. Collé: $ ssh-keygen -p
Appuyez sur enter pour l'emplacement par défaut.
Entrez l'ancienne phrase de passe
Entrer un nouveau mot de passe - BLANK
Confirmer la nouvelle phrase secrète - BLANK
BOOM la douleur d'entrer dans la phrase secrète pour git push avait disparu.
Merci!