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?

671
demandé sur btbytes 2008-09-22 02:39:02

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.

1311
répondu Torsten Marek 2017-06-26 18:16:36

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.

Vous pouvez en lire plus à ici et ici.

28
répondu mlambie 2014-09-22 16:09:34

$ 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!

5
répondu Karan 2018-06-05 15:47:13