Question Comment puis-je 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 me rends compte maintenant, c'est assez douloureux quand vous essayez de commettre (Git et SVN) à un endroit éloigné sur SSH plusieurs fois dans une heure.

Une façon que je peux penser est, supprimer mes clés SSH et créer de nouvelles. Est-il possible de supprimer la phrase secrète tout en conservant les mêmes clés?


639
2017-09-21 22:42


origine


Réponses:


Réponse courte:

$ ssh-keygen -p

Cela vous demandera ensuite 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 seule ligne sans invite:

$ ssh-keygen -p [-P old_passphrase] [-N new_passphrase] [-f keyfile]

Important: Attention, lors de l'exécution des commandes, ils seront généralement connectés dans votre ~/.bash_history fichier (ou similaire) en texte brut incluant tous les arguments fournis (c'est-à-dire les mots de passe dans ce cas). Il est donc 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.


1247
2017-09-22 00:10



Vous pouvez ajouter ce qui suit à votre fichier .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'identifiant généré sur une machine distante et l'ajoutera au trousseau distant.

Vous pouvez lire plus ici et ici.


27



$ ssh-keygen -p travaillé pour moi

Ouvert git bash. Collé: $ ssh-keygen -p

Appuyez sur Entrée pour l'emplacement par défaut.

Entrez l'ancienne phrase secrète

Entrez une nouvelle phrase secrète - BLANK

Confirmer la nouvelle phrase secrète - BLANK

BOOM la douleur d'entrer la phrase de passe pour le git push avait disparu.

Merci!


2