Comment supprimer la phrase secrète de la clé SSH sans avoir à créer une nouvelle clé?
J'ai défini une phrase secrète lors de la création d'une nouvelle clé SSH sur mon ordinateur portable. Mais, comme je le réalise maintenant, c'est assez douloureux lorsque vous essayez de commettre (Git et SVN) à un emplacement distant sur SSH plusieurs fois dans une heure.
Une façon de penser est de supprimer mes clés SSH et de créer de nouvelles. Existe-t-il un moyen de supprimer la phrase secrète, tout en conservant les mêmes clés?
3 réponses
Réponse courte:
$ ssh-keygen -p
Cela vous demandera alors d'entrer l'emplacement du fichier de clés, l'ancienne phrase secrète et la nouvelle phrase secrète (qui peut être laissée vide pour ne pas avoir de phrase secrète).
Si vous souhaitez tout faire sur une ligne sans invites, faites:
$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]
Important: attention, lors de l'exécution des commandes, elles seront généralement enregistrées dans votre fichier ~/.bash_history
(ou similaire) en texte brut, y compris tous les arguments fournis (c'est-à-dire les mots de passe dans ce cas). Il est par conséquent, il est recommandé d'utiliser la première option, sauf si vous avez une raison spécifique de faire autrement.
Vous pouvez envisager d'utiliser ssh-agent, qui peut mettre en cache la phrase secrète pendant un certain temps. Les dernières versions de gpg-agent prennent également en charge le protocole utilisé par ssh-agent.
Vous pouvez ajouter ce qui suit à 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
Cela copiera l'id généré sur une machine distante et l'ajoutera au trousseau distant.
$ ssh-keygen -p
a travaillé pour moi
Ouvert Git bash. Collé : $ ssh-keygen -p
Appuyez sur entrée pour l'emplacement par défaut.
Entrez l'ancienne phrase de passe
Entrez une nouvelle phrase secrète-vide
Confirmer la nouvelle phrase secrète-vide
BOOM la douleur d'entrer la phrase de passe pour git push avait disparu.
Merci!